Python日期时间转换的JavaScript时间戳

sul*_*tan 43 javascript python timestamp

要获取JavaScript中的时间戳,我们使用

var ts = new Date().getTime()
Run Code Online (Sandbox Code Playgroud)

datetime到目前为止,将它转换为Python的正确方法是什么,我使用以下代码

>>> jsts = 1335205804950
>>> dt = datetime.datetime.fromtimestamp(jsts/1000)
>>> dt
datetime.datetime(2012, 4, 24, 0, 30, 4)
Run Code Online (Sandbox Code Playgroud)

我将时间戳除以1000,因为我得到了错误

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

苏丹.

And*_*ark 68

您当前的方法是正确的,除了1000是必要的,因为您的JavaScript返回时间戳(以毫秒为单位),并datetime.datetime.fromtimestamp()期望以秒为单位的时间戳.

为了保持毫秒精度,你可以除以1000.0,所以你使用浮点除法而不是整数除法:

>>> dt = datetime.datetime.fromtimestamp(jsts/1000.0)
>>> dt
datetime.datetime(2012, 4, 23, 11, 30, 4, 950000)
Run Code Online (Sandbox Code Playgroud)

  • @jjj 我认为他的意思是在 python 3.x 中不需要浮点除法;我们有一个显式的整数除法运算符 - `//` - 所以如果你用 `/` 将 `float` 除以 `int`,你会得到一个 `float`。 (4认同)
  • 幸运的是,这在 Python 3 中不是必需的。 (3认同)