Python menyediakan paket yang berbeda (datetime
, waktu
, kalender
) seperti yang dapat dilihat di sini dalam rangka untuk berurusan dengan waktu. Aku membuat kesalahan besar dengan menggunakan berikut untuk mendapatkan saat ini waktu GMT waktu.mktime(datetime.datetime.utcnow().timetuple())
Apa adalah cara sederhana untuk mendapatkan saat ini waktu GMT di Unix timestamp?
Saya akan menggunakan waktu.waktu() untuk mendapatkan timestamp dalam hitungan detik sejak epoch.
import time
time.time()
Output:
1369550494.884832
Untuk standar CPython implementasi pada kebanyakan platform ini akan kembali UTC nilai.
Hal ini membantu?
from datetime import datetime
import calendar
d = datetime.utcnow()
unixtime = calendar.timegm(d.utctimetuple())
print unixtime
How to convert Python UTC datetime objek untuk UNIX timestamp
Atau hanya cukup menggunakan datetime modul standar
In [2]: from datetime import timezone, datetime
...: int(datetime.now(tz=timezone.utc).timestamp() * 1000)
...:
Out[2]: 1514901741720
Anda dapat memotong atau berkembang biak tergantung pada resolusi yang anda inginkan. Ini adalah contoh keluaran millis.
Jika anda ingin yang tepat Unix tampilkan waktu (dalam detik) keluarkan * 1000
Saya suka metode ini:
import datetime, time
dts = datetime.datetime.utcnow()
epochtime = round(time.mktime(dts.timetuple()) + dts.microsecond/1e6)
Metode lain yang diposting di sini adalah baik tidak dijamin untuk memberikan anda UTC pada semua platform atau hanya melaporkan seluruh detik. Jika anda ingin resolusi penuh, ini bekerja, untuk mikro-detik.
python2 dan python3
adalah baik untuk menggunakan waktu modul
import time
int(time.time())
1573708436
anda juga dapat menggunakan datetime modul, tetapi ketika anda menggunakan strftime('%s'), tapi strftime mengkonversi waktu ke waktu lokal anda!
python2
from datetime import datetime
datetime.utcnow().strftime('%s')
python3
from datetime import datetime
datetime.utcnow().timestamp()
#First Example:
from datetime import datetime, timezone
timstamp1 =int(datetime.now(tz=timezone.utc).timestamp() * 1000)
print(timstamp1)
Output: 1572878043380
#second example:
import time
timstamp2 =int(time.time())
print(timstamp2)
Output: 1572878043