Python tilbyr forskjellige pakker (datetime
, time
, calendar
) som kan sees her for å håndtere tid. Jeg gjorde en stor feil ved å bruke følgende for å få gjeldende GMT-tid time.mktime(datetime.datetime.utcnow().timetuple())
.
Hva er en enkel måte å få gjeldende GMT-tid i Unix-tidsstempel?
Jeg ville brukt time.time() for å få et tidsstempel i sekunder siden epoken.
import time
time.time()
Utdata:
1369550494.884832
For standard CPython-implementeringen på de fleste plattformer vil dette returnere en UTC-verdi.
Hjelper dette?
from datetime import datetime
import calendar
d = datetime.utcnow()
unixtime = calendar.timegm(d.utctimetuple())
print unixtime
Hvordan konvertere Python UTC-datetime-objekt til UNIX-tidsstempel
Jeg liker denne metoden:
import datetime, time
dts = datetime.datetime.utcnow()
epochtime = round(time.mktime(dts.timetuple()) + dts.microsecond/1e6)
De andre metodene som er lagt ut her, er enten ikke garantert å gi deg UTC på alle plattformer eller rapporterer bare hele sekunder. Hvis du vil ha full oppløsning, fungerer denne på mikrosekundet.