Datetime adalah suatu standar pustaka (standard library) bawaan python untuk manipulasi tanggal dan waktu. Untuk menggunakannya, cukup import
dari module datetime
.
import datetime
Setelah dilakukan import, fungsi-fungsi atau class di dalamnya dapat digunakan. Misalkan, jika ingin mengetahui waktu saat ini, gunakan fungsi now()
.
sekarang = datetime.datetime.now()
print(sekarang)
Output:
2021-10-24 22:12:29.476245
Pada hasil output di atas, berisi informasi yang terdiri tahun, bulan, hari, jam, menit, detik, dan milidetik. Karena merupakan tipe objek dari datetime
, ada beberapa fungsi maupun atribut untuk mengembalikan informasi mengenai objek datetime
tersebut. Misalkan, jika ingin mengetahui tahun, bulan dan hari, maka gunakan atribut year
, month
, dan day
print(sekarang.year)
print(sekarang.month)
print(sekarang.day)
Modul datetime
memungkinkan kita unuk menulis format tanggal sesuai yang diinginkan. Beberapa contoh penulisan tanggal adalah sebagai berikut
- 24-10-2021
- 24/10/2021
- 24 October 2021
- dan lain sebagainya
Untuk melakukannya, gunakan fungsi strftime()
, yang menerima argument string format penulisan tanggal yang biasanya diawali dengan tanda %
yang dapat disebut juga dengan directive. Misalkan, jika ingin mengubah format tanggal hari ini menjadi DD-MM-YYYY
, maka contoh penggunaan fungsi adalah sebagai berikut
print(sekarang.strftime('%d-%m-%Y'))
Contoh kode program di atas, terdapat 3 directive yang dapat dijelaskan sebagai berikut
%d
: menampilkan tanggal dalam bentuk angka (01-31)%m
: menampilkan bulan dalam bentuk angka (01-12)%Y
: menampilkan tahun dalam versi lengkap (4 digit)
Sehingga, jika kode di atas dieksekusi, maka hasilnya adalah sebagai berikut (hasil dapat berbeda tergantung tanggal saat ini)
24-10-2021
Format penulisan tanggal dan waktu lainnya dapat dilihat pada referensi berikut https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior
Pada bagian sebelumnya, telah dijelaskan bagaimana mengetahui tanggal saat ini dan bentuk penulisannya. Untuk bagian ini, akan dibahas bagaimana mendefinisikan tanggal dan waktu yang akan kita buat. Masih menggunakan datetime.datetime()
, misalkan kita mendefinisikan tanggal untuk hari kemerdekaan 17 Agustus 1945
import datetime
hari_kemerdekaan = datetime.datetime(1945, 8, 17)
Sehingga, jika dicetak variabel hari_kemerdekaan
, maka hasilnya adalah 1945-08-17
. Hasil tersebut dapat diubah format penanggalannya sesuai dengan cara yang dijelaskan pada bagian sebelumnya.
Tanggal dan waktu dapat dioperasikan seperti operator aritmatika pada umumnya. Salah satu contoh penerapannya adalah operasi pengurangan untuk menghitung umur kita saat ini dengan mengurangkan dari tanggal hari ini terhadap tanggal lahir. Contoh, jika tanggal lahirnya 29 Desember 1997, maka program perhitungan umur adalah sebagai berikut
import datetime
tanggal_lahir = datetime.datetime(1997, 12, 29)
tanggal_sekarang = datetime.datetime.now()
umur_sekarang = tanggal_sekarang - tanggal_lahir
print(umur_sekarang)
Maka outputnya adalah "8704 days, 12:49:29.801983"
(hasil dapat berbeda tergantung tanggal dieksekusi pada saat itu), yang berarti hasil pengurangannya adalah 8704 hari 12 jam 49 menit 29,801983 detik. Jika ingin menampilkan umur dalam tahun dan hari, maka langkah-langkahnya adalah sebagai berikut
- Ambil jumlah harinya menggunakan properti
days
- Bagi jumlah hari tersebut dengan 365 menggunakan operator floor division agar diperoleh hasil dalam tahun tipe integer
- Bagi jumlah hari tersebut dengan 365 menggunakan operator modulus agar diperoleh sisa harinya. Sehingga, jika kode di atas dilanjutkan, maka akan menjadi sebagai berikut
jumlah_hari = umur_sekarang.days
umur_tahun = jumlah_hari // 365
sisa_hari = jumlah_hari % 365
print("Umur saya adalah %d tahun %d hari" % (umur_tahun, sisa_hari))
Jika dieksekusi kode di atas, maka hasilnya adalah "Umur saya adalah 23 tahun 309 hari"
Hal-hal lebih lanjut tentang modul tanggal dan waktu (datetime) ini dapat mengunjungi dokumentasi berikut
video penjelasan tentang modul datetime = Belajar python dasar - mengenal modul datetime