El timemódulo se puede inicializar usando segundos desde la época:
>>> import time
>>> t1=time.gmtime(1284286794)
>>> t1
time.struct_time(tm_year=2010, tm_mon=9, tm_mday=12, tm_hour=10, tm_min=19,
tm_sec=54, tm_wday=6, tm_yday=255, tm_isdst=0)
¿Hay una manera elegante de inicializar un datetime.datetimeobjeto de la misma manera?

Respuestas:
datetime.datetime.fromtimestampservirá, si conoce la zona horaria, podría producir la misma salida que contime.gmtimeo
fuente
datetime.utcfromtimestampcrea una marca de tiempo ingenua. Tuve queimport pytzusardatetime.fromtimestamp(1423524051, pytz.utc)y crear una fecha y hora consciente.pytzbiblioteca si solo deseas la marca de hora UTC - sólo es necesariofrom datetime import datetime, timezoney luego llama de la siguiente manera:datetime.fromtimestamp(1423524051, timezone.utc). Ha guardado la biblioteca extra muchas veces cuando solo necesito la zona horaria UTCpytz.Segundos desde la época
datetimehastastrftime:fuente
De los documentos, la forma recomendada de obtener un objeto de fecha y hora consciente de la zona horaria desde segundos desde la época es:
Python 3 :
Python 2 , usando
pytz:fuente
pytzsolo necesita obtener elutcobjeto tzinfo. Es fácil crearlo usted mismoTenga en cuenta que datetime.datetime. fromtimestamp (marca de tiempo) y. utcfromtimestamp (marca de tiempo) falla en Windows para fechas anteriores al 1 de enero de 1970, mientras que las marcas de tiempo negativas de Unix parecen funcionar en plataformas basadas en Unix. Los documentos dicen esto:
Ver también Issue1646728
fuente
utc_time = datetime(1970,1,1) + timedelta(seconds=timestamp)para solucionarlo.