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 datetimeTarihlerle Ç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-04Ayrı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: 4Zamanlarla Ç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:45Tarihlere 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: 45Tarih 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:45datetime 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:45Gü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: 7Tarih 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, 2023Yaygı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 pytzDaha 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.