gpt4 book ai didi

python - 将大于 maxint 的时间戳转换为日期时间对象

转载 作者:太空狗 更新时间:2023-10-30 02:22:27 26 4
gpt4 key购买 nike

我有一些代码可以将一些存储为字符串的时间戳转换为日期时间对象,并且今天注意到当它转换具有大于最大 int 的 int 时间戳值的日期时出现异常。

datetime.datetime.fromtimestamp(2147570047)

例如给我

ValueError: timestamp out of range for platform time_t

我怎样才能解决这个问题?假设我想继续使用 32 位 python(运行 2.7.2)

我注意到我可以将 max int 转换为 datetime 对象,然后使用 timedeltas 添加任何额外的内容,但在实践中我想不出特别有效或好的方法来执行此操作。将这些 2038+ 时间戳转换为日期时间对象的好方法是什么?

最佳答案

我想我已经解决了,我有点惊讶这不会抛出相同的异常

>>> datetime.datetime.fromtimestamp(0) + datetime.timedelta(seconds=2147570047)
datetime.datetime(2038, 1, 20, 4, 14, 7)

编辑:这不是一个完美的解决方案,时区似乎有点问题(我目前在 BST 时间 (+1),所以可以解释为什么下面相隔一个小时)

>>> datetime.datetime.fromtimestamp(2047570047)
datetime.datetime(2034, 11, 19, 17, 27, 27)
>>> datetime.datetime.fromtimestamp(0) + datetime.timedelta(seconds=2047570047)
datetime.datetime(2034, 11, 19, 18, 27, 27)

关于python - 将大于 maxint 的时间戳转换为日期时间对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10588027/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com