Python'da datetime ile Tarih ve Saatler Nasıl İşlenir
Tarih ve saatlerin işlenmesi programlamada yaygın bir görevdir ve Python, tarih ve saatlerle çalışmak için datetime
adlı yerleşik bir modül sağlar. Bu modül, tarih, saat ve zaman aralıklarını işlemek için sınıflar sağlar ve tarih aritmetiğini gerçekleştirmeyi, tarihleri biçimlendirmeyi ve saat dilimlerini yönetmeyi kolaylaştırır. Bu makalede, Python'da datetime
modülünün tarih ve saatleri etkili bir şekilde işlemek için nasıl kullanılacağını inceleyeceğiz.
datetime ile Başlarken
datetime
modülü, datetime.date
, datetime.time
, datetime.datetime
, datetime.timedelta
ve datetime.tzinfo
gibi çeşitli sınıflar sağlar. Bu sınıflar tarihler, saatler ve zaman aralıklarıyla çalışmamızı sağlar.
datetime
modülünü kullanmaya başlamak için onu içe aktarmanız gerekiyor:
import datetime
Tarihlerle Çalışmak
date
sınıfını kullanarak bir tarih nesnesi oluşturabilirsiniz. Üç parametreye ihtiyaç duyar: yıl, ay ve gün.
from datetime import date
# Create a date object
my_date = date(2023, 9, 4)
print(my_date) # Output: 2023-09-04
Ayrıca yıl, ay ve gün gibi tarihin ayrı bileşenlerine de erişebilirsiniz:
print(my_date.year) # Output: 2023
print(my_date.month) # Output: 9
print(my_date.day) # Output: 4
Zamanlarla Çalışmak
time
sınıfı bir zaman nesnesi oluşturmanıza olanak tanır. Saat, dakika, saniye ve mikrosaniye (isteğe bağlı) gerektirir.
from datetime import time
# Create a time object
my_time = time(14, 30, 45)
print(my_time) # Output: 14:30:45
Tarihlere benzer şekilde, zaman nesnesinin bireysel bileşenlerine erişebilirsiniz:
print(my_time.hour) # Output: 14
print(my_time.minute) # Output: 30
print(my_time.second) # Output: 45
Tarih ve Saati datetime ile Birleştirme
datetime
sınıfı hem tarihi hem de saati tek bir nesnede birleştirir. Yıl, ay, gün, saat, dakika, saniye ve mikrosaniyeyi (isteğe bağlı) geçirerek bir datetime
nesnesi oluşturabilirsiniz.
from datetime import datetime
# Create a datetime object
my_datetime = datetime(2023, 9, 4, 14, 30, 45)
print(my_datetime) # Output: 2023-09-04 14:30:45
datetime
nesnesinin hem tarih hem de saat bileşenlerine erişebilirsiniz:
print(my_datetime.date()) # Output: 2023-09-04
print(my_datetime.time()) # Output: 14:30:45
Güncel Tarih ve Saati Alma
datetime
modülü geçerli tarihi, saati veya her ikisini birden almak için kullanışlı yöntemler sağlar:
# Current date
today = date.today()
print(today) # Output: (current date)
# Current date and time
now = datetime.now()
print(now) # Output: (current date and time)
timedelta ile Tarih Aritmetiği
timedelta
sınıfı, iki tarih veya saat arasındaki fark olan bir süreyi temsil eder. Bir tarihten gün ekleme veya çıkarma gibi tarih aritmetiği yapmanıza olanak tanır.
from datetime import timedelta
# Create a timedelta object
delta = timedelta(days=7)
# Add 7 days to the current date
future_date = today + delta
print(future_date)
İki tarih arasındaki farkı da hesaplayabilirsiniz:
# Calculate the difference between two dates
date1 = date(2023, 9, 4)
date2 = date(2023, 9, 11)
difference = date2 - date1
print(difference.days) # Output: 7
Tarih ve Saatleri Biçimlendirme
strftime()
yöntemi bir tarih veya saati bir dizeye biçimlendirmenize olanak tanır. Bu yöntem, istenen biçimi belirtmek için bir biçim kodu alır:
# Format a date object
formatted_date = today.strftime('%B %d, %Y')
print(formatted_date) # Output: September 04, 2023
Yaygın format kodları şunları içerir:
%Y
- Yıl (örneğin, 2023)%m
- Sıfırla doldurulmuş ondalık sayı olarak ay (örneğin, 09)%d
- Ayın günü sıfırla doldurulmuş ondalık sayı olarak (örneğin, 04)%H
- Saat (24 saatlik zaman dilimi) sıfırla doldurulmuş ondalık sayı olarak (örneğin, 14)%M
- Dakika sıfırla doldurulmuş ondalık sayı olarak (örneğin, 30)%S
- Sıfırla doldurulmuş ondalık sayı olarak ikinci (örneğin, 45)
Dizelerden Tarihleri Ayrıştırma
strptime()
metodu, tarih dizesinin biçimi verildiğinde bir dizeyi datetime
nesnesine dönüştürmenize olanak tanır:
# Parse a date from a string
date_str = '2023-09-04'
parsed_date = datetime.strptime(date_str, '%Y-%m-%d')
print(parsed_date)
Zaman Dilimleriyle Çalışma
datetime
modülü, pytz
kütüphanesini kullanarak saat dilimi farkında datetime
nesnelerini destekler. Saat dilimleriyle çalışmak için pytz
: yüklemeniz gerekir.
pip install pytz
Daha sonra, datetime
nesnesine bir saat dilimi atayabilirsiniz:
from datetime import datetime
import pytz
# Set timezone to UTC
utc_zone = pytz.utc
now_utc = datetime.now(utc_zone)
print(now_utc)
Çözüm
Python'daki datetime
modülü, tarih ve saat nesnelerini oluşturma, biçimlendirme, ayrıştırma ve aritmetik işlemleri yapma dahil olmak üzere tarih ve saatlerle başa çıkmak için güçlü araçlar sağlar. Tarihleri düzenlemeniz, saat dilimleriyle çalışmanız veya görüntüleme için tarih ve saatleri biçimlendirmeniz gerekip gerekmediğine bakılmaksızın, datetime
modülü sizin için her şeyi yapar.