Python Datetime: Tarihler ve Saatlerle Çalışmak

Python'da tarihleri, saatleri, saat dilimlerini ve hesaplamaları nasıl kullanacağınızı öğrenin. Datetime ve timedelta'yı kullanarak biçimlendirme, ayrıştırma ve aritmetik konusunda uzmanlaşın.

Editör'de deneyin

Genel Bakış

Artık yıllar, gün ışığından yararlanma ayarlamaları ve farklı saat dilimi biçimleri nedeniyle tarih ve saatlerin işlenmesi yazılım geliştirmede bilinen bir zorluktur. Python bu zorlukları yerleşik 'datetime' modülüyle çözer. Bu modül, zamansal verileri temiz bir şekilde temsil eden ve işleyen, tarih hesaplamalarını basitleştiren "tarih", "saat", "tarihsaat" ve "saat dilimi" gibi sağlam bir nesne sınıfları seti sağlar.

En yaygın görevlerden biri, tarihleri dizelere (biçimlendirme) ve dizeleri tarihlere (ayrıştırma) dönüştürmektir. Python bunun için iki ana yöntem kullanır: `.strftime()` (dize biçimi saat), biçimlendirme kodlarını kullanarak (yıl için '%Y', ay için '%m' ve gün için '%d' gibi) bir tarihsaat nesnesini okunabilir bir dizeye dönüştürür. Bunun tersine, `datetime.strptime()` (dize ayrıştırma süresi), bir ham dize girişini, eşleşen bir format şablonunu temel alarak bir tarih saat nesnesine ayrıştırır; bu, günlükleri veya API girişlerini okurken hayati önem taşır.

Tarih matematiğinin gerçekleştirilmesi de 'timedelta' nesnesi kullanılarak tamamen desteklenir. 'Timedelta' bir süreyi temsil eder (ör. 7 gün, 4 saat). Geçmiş veya gelecek tarihleri ​​hesaplamak için (son kullanma tarihi belirlemek gibi) bir "tarihsaat"e "zaman deltası" ekleyebilir veya çıkarabilirsiniz. Birden fazla saat dilimiyle çalışırken, saat dilimini tanıyan nesnelerin ("zoneinfo" veya "timezone.utc" gibi) kullanılması, tarih karşılaştırmalarının farklı sunucu konumları arasında doğru kalmasını sağlamak için kritik öneme sahiptir.

Kod ve Yürütme Çıkışı

Dizeleri datetime nesnelerine ayrıştırma ve timedelta kullanarak gelecekteki son tarihleri hesaplama.

datetime_demo.py
Editör'de deneyin
from datetime import datetime, timedelta

# Define a specific fixed base date and time (for deterministic runs)
base_date = datetime(2026, 5, 25, 23, 45, 50)
print(f"Base Date/Time: {base_date}")

# Format datetime as string
formatted = base_date.strftime("%Y-%m-%d %H:%M:%S")
print(f"Formatted String: {formatted}")

# Parse string to datetime
date_str = "2026-12-25"
parsed_date = datetime.strptime(date_str, "%Y-%m-%d")
print(f"Parsed Date: {parsed_date}")

# Date arithmetic with timedelta
ten_days_later = base_date + timedelta(days=10)
print(f"Date 10 days later: {ten_days_later.strftime('%Y-%m-%d')}")
Terminal Çıkışı
Base Date/Time: 2026-05-25 23:45:50
Formatted String: 2026-05-25 23:45:50
Parsed Date: 2026-12-25 00:00:00
Date 10 days later: 2026-06-04

Adım Adım Uygulama

  • Deneme süresinin sona ermesini ve faturalandırma tarihlerini hesaplama
  • Sunucu erişim günlüklerindeki zaman damgası dizelerini ayrıştırma
  • Otomatik cron işlerini veya yinelenen raporları planlama

Sıkça Sorulan Sorular

Saf ve bilinçli tarih saat nesnesi nedir?

Saf bir tarihsaat nesnesi saat dilimi bilgisi içermez, oysa bilinçli bir tarihsaat nesnesi saat dilimi farklarını içerir, bu da onu uluslararası saat hesaplamaları için güvenli kılar.

İki tarih arasındaki farkı nasıl hesaplarım?

Bir tarihsaat nesnesini diğerinden çıkarmak, aralarındaki tam süreyi temsil eden bir timedelta nesnesi döndürür.

İlgili Konular

Önerilen Python Kaynakları

İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.