First timer on StackExchange.
I am working with ArcGIS Server and Python. While trying to execute a query using the REST endpoint to a map service, I am getting the
You can accomplish this using the datetime
module's datetime
and timedelta
functions.
The other answers divide the timestamp by 1000 to convert milliseconds to seconds. This is unnecessary, since the timedelta
function can take milliseconds directly as a parameter. It might therefore be cleaner to do something like this:
datetime.datetime(1970, 1, 1) + datetime.timedelta(milliseconds=-3739996800000)
which gives datetime.datetime(1851, 6, 27, 0, 0)
, as you'd expect.
if timestamp < 0:
return datetime(1970, 1, 1) + timedelta(seconds=timestamp)
else:
return datetime.utcfromtimestamp(timestamp)
This works for me:
datetime.datetime(1970, 1, 1) + datetime.timedelta(seconds=(-3739996800000/1000))
→ datetime.datetime(1851, 6, 27, 0, 0)
This would have been better asked on StackOverflow since it is more Python specific than it is GIS-specific.