datetime.datetime.fromtimestamp()
es correcto, excepto que probablemente tenga una marca de tiempo en milisegundos (como en JavaScript), pero fromtimestamp()
espera la marca de tiempo de Unix, en segundos.
Hazlo así:
>>> import datetime
>>> your_timestamp = 1331856000000
>>> date = datetime.datetime.fromtimestamp(your_timestamp / 1e3)
y el resultado es:
>>> date
datetime.datetime(2012, 3, 16, 1, 0)
¿Responde tu pregunta?
EDITAR : JF Sebastian sugirió correctamente usar la verdadera división por 1e3
(flotante 1000
). La diferencia es significativa, si desea obtener resultados precisos, por lo tanto, cambié mi respuesta. La diferencia resulta del comportamiento predeterminado de Python 2.x, que siempre regresa int
al dividir (usando el /
operador) int
por int
(esto se llama división de piso ). Al reemplazar el divisor 1000
(siendo un int
) con el 1e3
divisor (siendo la representación de 1000
como flotante) o con float(1000)
(o 1000.
etc.), la división se convierte en verdadera división . Python 2.x regresa float
cuando se divide int
por float
,float
por int
,float
por float
etc. Y cuando hay una parte fraccional en la marca de tiempo pasada al fromtimestamp()
método, el resultado de este método también contiene información sobre esa parte fraccionaria (como el número de microsegundos).
/ 1e3