Python'da Bir Dizeyi Datetime'a Ayrıştırma (strptime)
Python'da dizeleri tarihsaat nesnelerine nasıl dönüştüreceğinizi öğrenin. Strptime yönteminde uzmanlaşın, tarih dizelerini ayrıştırın, saat dilimlerini yönetin ve biçim hatalarını önleyin.
Genel Bakış
Kullanıcı formu gönderimlerini işleyen, web veritabanlarını kazıyan, sunucu günlüklerini ayrıştıran veya CSV sayfalarını içe aktaran uygulamalar oluştururken sıklıkla tarih ve saat bilgilerini ham metin dizeleri olarak alırsınız (ör. `"2026-05-25 15:45"`). Dizeler üzerinde hesaplamalar, tarih aritmetiği veya sıralama yapamayacağınız için bunları Python datetime nesnelerine ayrıştırmanız gerekir.
Bu dönüştürmenin birincil yöntemi "datetime.strptime(date_string, format_string)"dir. Adı "dize ayrıştırma süresi" anlamına gelir. İşlev, ham tarih dizesini ve yönergeleri içeren bir biçim şablonunu alır (yıl için "%Y", ay için "%m" ve gün için "%d" gibi) ve karşılık gelen bir tarihsaat nesnesini döndürür.
Giriş dizesi sağlanan format şablonuyla tam olarak eşleşmiyorsa Python bir "ValueError" hatası verir. Çökmeleri önlemek için, "strptime()" işlemlerini her zaman bir "try-hariç" bloğuna sarın. Çeşitli, yapılandırılmamış tarih girişlerini ayrıştıran uygulamalar için, 'python-dateutil' gibi harici kütüphaneler ayrıştırıcı tespitinin otomatikleştirilmesine yardımcı olabilir.
Kod ve Yürütme Çıkışı
Bu komut dosyası, datetime.strptime kullanarak tarih dizelerinin ayrıştırılmasını, geçersiz girişlerin ele alınmasını ve tarih farklarının hesaplanmasını gösterir.
from datetime import datetime
# 1. Basic parsing using strptime
date_str = "2026-05-25 18:30:00"
format_template = "%Y-%m-%d %H:%M:%S"
parsed_date = datetime.strptime(date_str, format_template)
print("Parsed DateTime:", parsed_date)
print("Month parsed:", parsed_date.month)
print("Hour parsed:", parsed_date.hour)
# 2. Handling parse errors safely
bad_date_str = "25/05/2026"
try:
datetime.strptime(bad_date_str, "%Y-%m-%d")
except ValueError as e:
print(f"\nParse Error: {e}")
# Correcting the format
corrected_date = datetime.strptime(bad_date_str, "%d/%m/%Y")
print("Corrected Parse:", corrected_date.date())Parsed DateTime: 2026-05-25 18:30:00
Month parsed: 5
Hour parsed: 18
Parse Error: time data '25/05/2026' does not match format '%Y-%m-%d'
Corrected Parse: 2026-05-25Adım Adım Uygulama
- Datetime sınıfını datetime modülünden içe aktarın.
- Tarih dizenizin tam yapısını tanımlayın (ör. gün, ay, ayırıcılar).
- Datetime.strptime(date_string, format_pattern) işlevini uygun yönergelerle (%Y, %m, %d gibi) çağırın.
- Hatalı biçimlendirilmiş dizeleri düzgün bir şekilde işlemek için ayrıştırma ifadesini try-hariç ValueError bloğuna sarın.
Sıkça Sorulan Sorular
strftime ve strptime arasındaki fark nedir?
strptime (dize ayrıştırma zamanı), bir datetime nesnesi oluşturmak için bir dizeyi ayrıştırır. strftime (string format time), bir datetime nesnesini okunabilir bir dize temsiline biçimlendirir.
ISO 8601 tarih dizelerini (ör. "2026-05-25T18:30:00Z") nasıl ayrıştırırım?
Python 3.7+'da, manuel format şablonu gerektirmeden ISO dizelerini verimli bir şekilde işleyen yerleşik datetime.fromisoformat(string) işlevini kullanabilirsiniz.
İlgili Konular
Datetime modülünü kullanarak Python'da geçerli tarih ve saati nasıl alacağınızı öğrenin. Tarihleri strftime ile dizelere biçimlendirin ve saat dilimlerini işleyin.
Python'da String'i Int'ye DönüştürmePython'da int() işlevini kullanarak bir dizeyi tam sayıya nasıl dönüştüreceğinizi öğrenin. Hataları güvenli bir şekilde ele alın ve sayıları ikili, sekizli veya onaltılıdan dönüştürün.
Önerilen Python Kaynakları
İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.
Python Dizeleri
Python'da dize manipülasyonunda ustalaşın. Açık, yürütülebilir kod örnekleriyle dize yöntemlerini, dilimleme, birleştirme ve biçimlendirme tekniklerini öğrenin.
Python String Yöntemleri Hile Sayfası
Python dize manipülasyonu için eksiksiz bir başvuru kılavuzu. Dize özelliklerini biçimlendirme, arama, bölme, değiştirme ve denetleme konusunda uzmanlaşın.
Python Dekoratörler ve Dekoratör Tasarım Deseni: Temel Farklılıklar
Python dekoratörlerini ve klasik dekoratör tasarım modelini karşılaştırın. Çalıştırılabilir kodla tanım zamanı işlev sarma ve çalışma zamanı dinamik nesne bileşimi arasındaki farkları anlayın.