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.