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

2024-06-17 11:21:05 发布

您现在位置:Python中文网/ 问答频道 /正文

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

var ts = new Date().getTime()

到目前为止,我使用以下代码

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

我把时间戳除以1000,因为我得到的错误如下

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

苏丹。


Tags: 代码newdatetimedatevar错误时间dt
3条回答

对于其他仍然得到一个错误:我有一个类似的问题,但是unix时间戳是以微秒为单位的,也就是说,我必须将时间戳除以1000000才能得到正确的结果。

dt = datetime.datetime.fromtimestamp(1502360499615921)

当前方法是正确的,需要除以1000,因为JavaScript返回的时间戳以毫秒为单位,而datetime.datetime.fromtimestamp()需要的时间戳以秒为单位。

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

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

这样做是正确的,因为js在日期/时间中包含毫秒。据我所知,Python(和PHP)没有。 为了更精确,您可以使用/1000.0

相关问题 更多 >