javascriptpythontimestamp

JavaScript timestamp to Python datetime conversion


To get timestamp in JavaScript we use

var ts = new Date().getTime()

What is the proper way to convert it to a Python datetime so far I use the following code

>>> jsts = 1335205804950
>>> dt = datetime.datetime.fromtimestamp(jsts/1000)
>>> dt
datetime.datetime(2012, 4, 24, 0, 30, 4)

I divide timestamp by 1000 because I get error like

ValueError                                Traceback (most recent call last)
1 d = datetime.datetime.fromtimestamp(a)
ValueError: year is out of range

Solution

  • Your current method is correct, dividing by 1000 is necessary because your JavaScript returns the timestamp in milliseconds, and datetime.datetime.fromtimestamp() expects a timestamp in seconds.

    To preserve the millisecond accuracy you can divide by 1000.0, so you are using float division instead of integer division:

    >>> dt = datetime.datetime.fromtimestamp(jsts/1000.0)
    >>> dt
    datetime.datetime(2012, 4, 23, 11, 30, 4, 950000)