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.

Coba Solusi ini di Editor

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.

parse_datetime.py
Coba di Editor
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())
Keluaran Terminal
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-25

Implementasi 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

Sumber Daya Python yang Direkomendasikan

Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.