如何将整数时间戳转换为Python datetim

2024-04-26 11:18:48 发布

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

我有一个包含时间戳的数据文件,比如“1331856000000”。不幸的是,我没有很多关于格式的文档,所以我不确定时间戳是如何格式化的。我尝试过Python的标准datetime.fromordinal()datetime.fromtimestamp()以及其他一些方法,但是没有匹配的。我非常确定特定的数字对应于当前日期(例如2012-3-16),但不会更多。

如何将此数字转换为datetime


Tags: 方法文档标准datetime数据文件格式时间数字
1条回答
网友
1楼 · 发布于 2024-04-26 11:18:48

^{}是正确的,只是时间戳可能以毫秒为单位(类似于JavaScript),但是fromtimestamp()需要Unix时间戳,以秒为单位。

这样做:

>>> import datetime
>>> your_timestamp = 1331856000000
>>> date = datetime.datetime.fromtimestamp(your_timestamp / 1e3)

结果是:

>>> date
datetime.datetime(2012, 3, 16, 1, 0)

它能回答你的问题吗?

编辑:J.F.塞巴斯蒂安正确地建议通过1e3(float1000)使用真除法。差异是显著的,如果你想得到准确的结果,因此我改变了我的答案。这种差异是由Python 2.x的默认行为造成的,当除以(使用/运算符)int时,python2.x总是返回int(这称为floor division)。通过将除数1000(作为int)替换为1e3除数(作为1000的浮点数表示)或float(1000)(或1000.等),除法成为真除法。Python 2.x返回floatint除以floatfloat除以intfloat除以float等时,并且当传递给fromtimestamp()方法的时间戳中有一些小数部分时,此方法的结果还包含有关该小数部分的信息(以微秒为单位)。

相关问题 更多 >