← Kembali ke kursus
Pelajaran kursus · Python
Pelajaran 24

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`.