如何将整数时间戳转换为Pythondate时间
我有一个数据文件包含像“1331856000000”的时间戳。 不幸的是,我没有很多格式的文档,所以我不知道如何格式化时间戳。 我已经尝试了Python的标准datetime.fromordinal()
和datetime.fromtimestamp()
和其他几个,但没有任何匹配。 我很确定,特定的数字对应于当前date(例如2012-3-16),但不多。
如何将此号码转换为datetime
?
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塞巴斯蒂安正确地build议使用真正除 1e3
(浮法1000
)。 差异是显着的,如果你想得到确切的结果,所以我改变了我的答案。 不同的结果是Python 2.x的默认行为,当用int
分隔(使用/
运算符) int
(这被称为floor division )时,它总是返回int
。 通过用1e3
除数(表示1000
作为浮点数)或float(1000)
(或1000.
等)replace除数1000
(是一个int
),该除法成为真正的除法 。 Python 2.x在float
除int
, int
float
, float
float
等等时返回float
当传递给fromtimestamp()
方法的时间戳记中有小数部分时,这个方法的结果还包含了小数部分的信息微秒数)。