Cara Mengurai String ke Datetime dengan Python (strptime)
Pelajari cara mengonversi string menjadi objek datetime dengan Python. Kuasai metode strptime, parsing string tanggal, tangani zona waktu, dan cegah kesalahan format.
Ikhtisar
Saat membangun aplikasi yang memproses pengiriman formulir pengguna, mengikis database web, mengurai log server, atau mengimpor lembar CSV, Anda akan sering menerima informasi tanggal dan waktu sebagai string teks mentah (misalnya, `"25-05-2026 15:45"`). Karena Anda tidak dapat melakukan perhitungan, aritmatika tanggal, atau pengurutan string, Anda harus menguraikannya ke dalam objek datetime Python.
Metode utama untuk konversi ini adalah `datetime.strptime(date_string, format_string)`. Namanya singkatan dari "string parse time". Fungsi ini mengambil string tanggal mentah dan templat format yang berisi arahan (seperti `%Y` untuk tahun, `%m` untuk bulan, dan `%d` untuk hari) dan mengembalikan objek tanggalwaktu yang sesuai.
Jika string input tidak sama persis dengan templat format yang disediakan, Python akan memunculkan `ValueError`. Untuk mencegah error, selalu gabungkan operasi `strptime()` dalam blok `coba-kecuali`. Untuk aplikasi yang mengurai input tanggal yang beragam dan tidak terstruktur, perpustakaan eksternal seperti `python-dateutil` dapat membantu mengotomatiskan deteksi parser.
Kode & Output Eksekusi
Skrip ini menunjukkan penguraian string tanggal menggunakan datetime.strptime, menangani input yang tidak valid, dan menghitung perbedaan tanggal.
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-25Implementasi Langkah demi Langkah
- Impor kelas datetime dari modul datetime.
- Identifikasi struktur persis string tanggal Anda (mis., hari, bulan, pemisah).
- Panggil datetime.strptime(date_string, format_pattern) dengan arahan yang sesuai (seperti %Y, %m, %d).
- Bungkus pernyataan penguraian dalam blok coba-kecuali ValueError untuk menangani string yang salah format dengan baik.
Pertanyaan yang Sering Diajukan
Apa perbedaan antara strftime dan strptime?
strptime (string parse time) mem-parsing string untuk membuat objek datetime. strftime (waktu format string) memformat objek datetime menjadi representasi string yang dapat dibaca.
Bagaimana cara mengurai string tanggal ISO 8601 (misalnya, "25-05-2026T18:30:00Z")?
DiPython 3.7+, Anda dapat menggunakan fungsi datetime.fromisoformat(string) bawaan, yang menangani string ISO secara efisien tanpa memerlukan templat format manual.
Topik Terkait
Pelajari cara mendapatkan tanggal dan waktu saat ini dengan Python menggunakan modul datetime. Format tanggal menjadi string dengan strftime dan tangani zona waktu.
Cara Mengonversi String ke Int dengan PythonPelajari cara mengonversi string menjadi bilangan bulat dengan Python menggunakan fungsi int(). Tangani kesalahan dengan aman dan konversikan angka dari biner, oktal, atau hex.
Sumber Daya Python yang Direkomendasikan
Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.
String Python
Manipulasi string master dengan Python. Pelajari metode string, pemotongan, penggabungan, dan teknik pemformatan dengan contoh kode yang jelas dan dapat dieksekusi.
Lembar
Panduan referensi lengkap untuk manipulasi string Python. Kuasai pemformatan, pencarian, pemisahan, penggantian, dan pemeriksaan properti string.
Pola Desain Dekorator Python vs Dekorator: Perbedaan Utama
Bandingkan dekorator Python dan pola desain dekorator klasik. Pahami perbedaan antara pembungkusan fungsi waktu definisi dan komposisi objek dinamis waktu proses dengan kode yang dapat dijalankan.