小编典典

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

all

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

如何将此数字转换为datetime


阅读 73

收藏
2022-06-02

共1个答案

小编典典

datetime.datetime.fromtimestamp()是正确的,除了你可能有以毫秒为单位的时间戳(如在
JavaScript 中),但fromtimestamp()需要 Unix 时间戳,以秒为单位。

这样做:

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

结果是:

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

它回答了你的问题吗?

编辑 :JF Sebastian 正确地建议 使用真正的除法
1e3浮点数1000)。如果您想获得精确的结果,差异很大,因此我改变了答案。差异源于 Python 2.x
的默认行为,int当将(使用/运算符)int除以int(这称为 floor division
)时,它总是返回。通过用除数(表示为浮点数)或(或等)替换除数1000(作为一个int),除法变为 真正的除法 。Python 2.x除以,
by ,时返回1e3``1000``float(1000)``1000.
__float``int``float``float``int``float等等。float当传递给fromtimestamp()方法的时间戳中有一些小数部分时,此方法的结果还包含有关该小数部分的信息(作为微秒数)。

2022-06-02