0Pricing
Python Academy · Ders

zoneinfo ile Saat Dilimleri

Saat dilimi bilgili datetime nesneleriyle çalışın

zoneinfo ile Saat Dilimleri, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.

Zaman dilimi bilgisi olmayan ve olan tarih-saatler

Zaman dilimi bilgisi olmayan bir tarih-saat nesnesi, hangi 2 PM olduğunu belirtmeden yalnızca '2 PM' der. Zaman dilimi bilgisi olan bir tarih-saat nesnesi bir zaman dilimi taşır ve böylece dünya üzerindeki kesin bir anı belirler.

Zaman dilimi bilgisi olan tarih-saatler, kullanıcılar birden fazla bölgeye yayıldığında oluşabilecek hataları önler.

from datetime import datetime
naive = datetime(2026, 5, 30, 14, 0)
print(naive.tzinfo)

Zaman dilimi bilgilerini içe aktarma

Python 3.9 ve sonraki sürümler, standart kitaplıkta zoneinfo modülünü sunar. ZoneInfo sınıfını içe aktarın ve 'Europe/Istanbul' veya 'America/New_York' gibi bir IANA zaman dilimi adı geçirin.

from zoneinfo import ZoneInfo
tz = ZoneInfo('Europe/Istanbul')
print(tz)

Zaman dilimi bilgisi olan tarih-saat oluşturma

Bir tarih-saat oluştururken tzinfo=ZoneInfo(...) geçirerek onu zaman dilimi bilgili hâle getirin. Böylece tarih-saat nesnesi tam olarak hangi bölgeye ait olduğunu bilir.

from datetime import datetime
from zoneinfo import ZoneInfo
d = datetime(2026, 5, 30, 14, 0, tzinfo=ZoneInfo('Europe/Istanbul'))
print(d)
print(d.tzinfo)

Dayanak olarak UTC

UTC evrensel referanstır. Geçerli zaman dilimi bilgili UTC saatini almak için datetime.now(ZoneInfo('UTC')) kullanın. Saatleri UTC olarak saklamak en iyi uygulamadır.

from datetime import datetime
from zoneinfo import ZoneInfo
utc_now = datetime(2026, 5, 30, 11, 0, tzinfo=ZoneInfo('UTC'))
print(utc_now)

Zaman dilimleri arasında dönüştürme

.astimezone(tz), zaman dilimi bilgisi olan bir tarih-saati başka bir zaman dilimine dönüştürür ve aynı anı göstermeye devam etmesi için saat bilgisini ayarlar.

from datetime import datetime
from zoneinfo import ZoneInfo
utc = datetime(2026, 5, 30, 11, 0, tzinfo=ZoneInfo('UTC'))
ist = utc.astimezone(ZoneInfo('Europe/Istanbul'))
print('UTC:', utc)
print('Istanbul:', ist)

Aynı an, farklı saatler

Dönüştürmeden sonra duvar saatindeki sayılar farklı olur, ancak temel alınan an aynıdır. Zaman dilimi bilgisi olan iki tarih-saat karşılaştırılırken görüntülenen rakamlar değil, gerçek anlar karşılaştırılır.

from datetime import datetime
from zoneinfo import ZoneInfo
utc = datetime(2026, 5, 30, 11, 0, tzinfo=ZoneInfo('UTC'))
ny = utc.astimezone(ZoneInfo('America/New_York'))
print(utc == ny)

UTC farkını okuma

.utcoffset() yöntemi, o anda zaman diliminin UTC'den ne kadar uzak olduğunu gösteren bir timedelta döndürür; buna yaz saati uygulamasından kaynaklanan ayarlama da dahildir.

from datetime import datetime
from zoneinfo import ZoneInfo
d = datetime(2026, 5, 30, 14, 0, tzinfo=ZoneInfo('Europe/Istanbul'))
print('Offset:', d.utcoffset())

Yaz saati uygulaması sizin için yönetilir

zoneinfo, sistemin zaman dilimi veritabanını kullandığından yaz saati uygulamasının ne zaman başlayıp bittiğini bilir. Aynı zaman diliminin yıl boyunca farklı farkları olabilir.

from datetime import datetime
from zoneinfo import ZoneInfo
winter = datetime(2026, 1, 15, 12, 0, tzinfo=ZoneInfo('America/New_York'))
summer = datetime(2026, 7, 15, 12, 0, tzinfo=ZoneInfo('America/New_York'))
print('Winter:', winter.utcoffset())
print('Summer:', summer.utcoffset())

Bilgisi olmayan saate zaman dilimi ekleme

Bir zaman dilimi bilgisi olmayan tarih-saat, bilinen bir yerel saati temsil ediyorsa .replace(tzinfo=...) ile ona bir zaman dilimi ekleyin. Bu işlem, saati değiştirmeden zaman dilimi bilgisini ekler.

from datetime import datetime
from zoneinfo import ZoneInfo
naive = datetime(2026, 5, 30, 9, 0)
aware = naive.replace(tzinfo=ZoneInfo('Europe/Istanbul'))
print(aware)

Zaman dilimi bilgisi olmayan ve olanları karıştırmama

Zaman dilimi bilgisi olmayan bir tarih-saat ile bilgisi olan bir tarih-saati çıkaramaz veya karşılaştıramazsınız; Python bir TypeError yükseltir. Bir program boyunca tarih-saatlerinizi tutarlı tutun.

from datetime import datetime
from zoneinfo import ZoneInfo
naive = datetime(2026, 5, 30, 9, 0)
aware = datetime(2026, 5, 30, 9, 0, tzinfo=ZoneInfo('UTC'))
try:
    print(aware - naive)
except TypeError as e:
    print('Error:', e)

Zaman dilimiyle biçimlendirme

Zaman dilimi bilgisi olan bir tarih-saati biçimlendirirken %Z kodu zaman diliminin adını, %z kodu ise sayısal farkını yazdırır.

from datetime import datetime
from zoneinfo import ZoneInfo
d = datetime(2026, 5, 30, 14, 0, tzinfo=ZoneInfo('Europe/Istanbul'))
print(d.strftime('%Y-%m-%d %H:%M %Z %z'))

Hızlı Kontrol

Zaman dilimi bilgisi olmayan ve olan bir tarih-saat arasındaki temel fark nedir?

Özet: Zaman dilimleriyle çalışma

Özet:

  • Zaman dilimi bilgisi olmayan tarih-saatlerde zaman dilimi bilgisi bulunmaz; bilgisi olanlar tzinfo taşır.
  • zoneinfo modülündeki ZoneInfo('Region/City') yapısını kullanın.
  • .astimezone(), zaman dilimi bilgisi olan bir tarih-saati başka bir zaman dilimine dönüştürür.
  • zoneinfo, yaz saati uygulamasını otomatik olarak yönetir; zaman dilimi bilgisi olmayan ve olan tarih-saatleri asla karıştırmamalısınız.
from datetime import datetime
from zoneinfo import ZoneInfo
utc = datetime(2026, 5, 30, 12, 0, tzinfo=ZoneInfo('UTC'))
print(utc.astimezone(ZoneInfo('Europe/Istanbul')))

Sıkça Sorulan Sorular

“zoneinfo ile Saat Dilimleri” dersi ücretsiz mi?

Evet — “zoneinfo ile Saat Dilimleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.

“zoneinfo ile Saat Dilimleri” dersinde ne öğreneceğim?

Saat dilimi bilgili datetime nesneleriyle çalışın Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Python Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“zoneinfo ile Saat Dilimleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. date, time, datetime
  2. Timedelta ve Aritmetik
  3. Biçimlendirme ve Ayrıştırma
  4. zoneinfo ile Saat Dilimleri
← Python Academy Sayfasına Dön