【问题标题】:Timestamp too large for datetime [duplicate]时间戳对于日期时间来说太大了[重复]
【发布时间】:2020-11-09 17:21:18
【问题描述】:

为什么我不能转换下面的时间戳?

from datetime import date

timestamp = date.fromtimestamp(1571266800000000000)
print("Date =", timestamp)

https://www.epochconverter.com/ 给出了正确的结果。

【问题讨论】:

  • .fromtimestamp() 需要秒,而不是纳秒。试试date.fromtimestamp(1571266800000000000/1e9)

标签: python datetime


【解决方案1】:

除了纳秒之外,这里还有一个警告:如果我运行

from datetime import date
timestamp = date.fromtimestamp(1571266800000000000/1e9)
print("Date =", timestamp)
>>> Date = 2019-10-17

请注意,这会给出我的本地时区 (UTC+2) 中的日期。但是,如果您希望日期参考 UTC(因为自纪元以来的秒数应该参考 UTC),则需要设置 tzinfo 属性:

from datetime import datetime, timezone
timestamp = datetime.fromtimestamp(1571266800000000000/1e9, tz=timezone.utc)
print("Date =", timestamp.date())
>>> Date = 2019-10-16

【讨论】:

    【解决方案2】:

    Python 预计秒数。 epochconverter给了我

    假设此时间戳以纳秒为单位(十亿分之一 第二):格林威治标准时间:2019 年 10 月 16 日,星期三 23:00:00 您的时区: Donnerstag, 17. 2019 年 10 月 01:00:00 GMT+02:00 DST 相对时间:9 个月 以前

    所以我认为你应该在 Python 中使用的是:

    date.fromtimestamp(15712668)
    

    【讨论】:

    • Python 预计秒数 - 好吧,如果你使用例如pandas 包,pd.to_datetime(1571266800000000000) 效果很好;-)
    猜你喜欢
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    相关资源
    最近更新 更多