Date, time, datetime, timezone
Baca waktu saat ini, format, dan parsing tanggal.
Pahami konsepnya
Modul datetime menyediakan kelas date (tanggal), time (jam), datetime (gabungan), dan timedelta (durasi). datetime.now() memberi waktu saat ini lengkap dengan mikrodetik; date.today() hanya tanggal. Selisih dua datetime menghasilkan timedelta: (besok - hari_ini).days memberi 1.
Format mengikuti kode persen: %Y tahun 4 digit, %m bulan 02, %d hari, %H jam, %M menit, %S detik. now.strftime("%d/%m/%Y %H:%M") menghasilkan bentuk yang kamu tulis polanya. Parsing adalah arah sebaliknya: datetime.strptime("15/03/2007", "%d/%m/%Y") membaca teks jadi objek datetime.
Timezone: Python 3.9+ punya ZoneInfo("Asia/Jakarta") untuk zona waktu bernama. Selama tanpa timezone, datetime bersifat naive (tanpa zona) — hati-hati membandingkan waktu lintas zona.
Coba contoh kode
from datetime import datetime, date, timedelta
sekarang = datetime.now()
print(sekarang)
print(sekarang.strftime("%d/%m/%Y %H:%M"))
# parsing
ulang = datetime.strptime("15/03/2007", "%d/%m/%Y")
print(f"Tahun lahir: {ulang.year}")
# timedelta
besok = date.today() + timedelta(days=1)
print(f"Besok: {besok}")strftime mengubah datetime menjadi teks sesuai pola persen; strptime adalah arah sebaliknya — teks jadi objek datetime. timedelta memungkinkan aritmetika tanggal: tambah hari, kurang minggu.
Latihan singkat
Uji: parse `15/03/2007` lalu cetak tahun — harus `2007`.