[belajar python] Mendapatkan nilai hari ini, kemarin, dan 30 hari sebelumnya


Ini sebagai catatan saja, maklum sering lupa. Catatan tentang cara mencari nilai hari ini, kemarin, dan bulan sebelumnya di python. Juga bagaimana cara mengonversi nilai datetime ke unix timestamp.

slytherin

Untuk mendapatkan nilai hari ini, kita gunakan librari datetime. Begini caranya:

>>> import datetime
>>> today = datetime.date.today()
>>> today
datetime.date(2017, 6, 20)

Nah untuk mendapatkan nilai kemarin, kita gunakan timedelta. Begini caranya:

>>> prev = today - datetime.timedelta(days=1)
>>> prev
datetime.date(2017, 6, 19)

Kalau dua hari sebelumnya? Ya tinggal ganti saya nilai variabel days-nya. Misalnya kita ingin mencari nilai 30 hari sebelumnya dari hari kemarin, maka kita ganti days menjadi 30:

>>> lastmonth = prev - datetime.timedelta(days=30)
>>> lastmonth
datetime.date(2017, 5, 20)

Variabel datetime itu bisa kita konversi ke unix timestamp. Ada dua cara, pakai librari time dan calendar. Librari time digunakan untuk mendapatkan nilai timestamp berdasarkan local time, sementara jika pakai calendar, nilai timestamp-nya berdasarkan UTC. Contohnya:

>>> today_local = int(time.mktime(today.timetuple()))
>>> today_local
1497891600
>>> today_utc = calendar.timegm(today.timetuple())
>>> today_utc
1497916800

Di situ terlihat nilainya berbeda. Untuk mengeceknya, bisa gunakan fungsi strftime:

>>> time.strftime("%d %b %Y %H:%M:%S", time.localtime(today_local))
'20 Jun 2017 00:00:00'
>>> time.strftime("%d %b %Y %H:%M:%S", time.localtime(today_utc))
'20 Jun 2017 07:00:00'

Di situ terlihat, variabel today_local jika diubah jadi 20 Juni 2017 pukul 00:00, sementara yang pakai UTC kelebihan 7 jam, sesuai waktu WIB (GMT+7).

Sekian. Semoga bermangpaat.


Ada komentar?

This site uses Akismet to reduce spam. Learn how your comment data is processed.