Python proporciona diferentes paquetes (datetime
, time
, calendar
) como se puede ver aquí para tratar con el tiempo. Cometí un gran error al usar lo siguiente para obtener la hora GMT actual time.mktime(datetime.datetime.utcnow().timetuple())
.
¿Cuál es una forma sencilla de obtener la hora GMT actual en un timestamp de Unix?
Yo usaría time.time() para obtener una marca de tiempo en segundos desde la época.
import time
time.time()
Salida:
1369550494.884832
Para la implementación estándar de CPython en la mayoría de las plataformas esto devolverá un valor UTC.
¿Ayuda esto?
from datetime import datetime
import calendar
d = datetime.utcnow()
unixtime = calendar.timegm(d.utctimetuple())
print unixtime
Cómo convertir un objeto datetime UTC de Python en un timestamp de UNIX
Me gusta este método:
import datetime, time
dts = datetime.datetime.utcnow()
epochtime = round(time.mktime(dts.timetuple()) + dts.microsecond/1e6)
Los otros métodos publicados aquí, o bien no están garantizados para darle UTC en todas las plataformas o sólo informe segundos enteros. Si quieres una resolución completa, esto funciona, hasta el micro-segundo.