cómo crear datetime desde una época negativa en Python
Primer contador de tiempo en StackExchange.
Estoy trabajando con ArcGIS Server y Python. Al intentar ejecutar una consulta utilizando el punto final REST a un servicio de mapas, obtengo los valores para un campo que es esriFieldTypeDate en la época negativa en la respuesta JSON. La respuesta de JSON se ve así:
{
"feature" :
{
"attributes" : {
"OBJECTID" : 11,
"BASIN" : "North Atlantic",
"TRACK_DATE" : -3739996800000,
}
,
"geometry" :
{
"paths" :
[
[
[-99.9999999999999, 30.0000000000001],
[-100.1, 30.5000000000001]
]
]
}
}
}
El campo al que me refiero es "TRACK_DATE" en el JSON anterior. Los valores devueltos por ArcGIS Server están siempre en milisegundos desde la época. ArcGIS Server también proporciona una respuesta HTML y el campo TRACK_DATE para la misma consulta se muestra como "TRACK_DATE: 1851/06/27 00:00:00 UTC".
Entonces, la fecha es anterior a 1900 y entiendo que el módulo de fecha y hora incorporado de Python no puede manejar las fechas anteriores a 1900. Estoy usando Python v2.6 de 32 bits. Estoy tratando de convertirlo a una fecha y hora utilizando
datetime.datetime.utcfromtimestamp(float(-3739996800000)/1000)
Sin embargo, esto falla con
ValueError: timestamp out of range for platform localtime()/gmtime() function
¿Cómo funciona uno con épocas negativas y anteriores a 1900 en Python 2.6? He visto publicaciones similares, pero no pude encontrar una que explique cómo trabajar con épocas negativas.