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

标签 python datetime timestamp

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

它回答了你的问题吗?

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

关于python - 如何将整数时间戳转换为日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9744775/

相关文章:

python - 如何使用 Python Flask 模板注册服务 worker

php - 选择所有年份的日期

SQL时髦的持续时间查询

android - 如何比较android中的两个时间戳?

python - OSError at/user/1/edit [Errno 13] 权限被拒绝 : '/home/django/django_project/media/profile_pics/Square.jpg'

python - 为什么此幂函数在负指数情况下返回零?

python - 递归函数中数据库连接的最佳实践?

C# 日期时间算术溢出错误

sql-server - 经典 ASP + TSQL : DateTime Format Issue

python-3.x - 可以使用pyav获取视频中帧的时间戳 - python