gpt4 book ai didi

Python fromtimestamp OSError

转载 作者:IT老高 更新时间:2023-10-28 20:40:51 25 4
gpt4 key购买 nike

由于某种原因,在使用 fromtimestamp 构造日期时间时,当我使用小于 -43200(-12 小时)的负数时,我得到一个“OSError [Errno22] Invalid Argument”。我在 Win7 64 位和 python 3.5.1 上。这是产生错误的代码。

>>> import datetime
>>> import pytz
>>> datetime.datetime.fromtimestamp(-43200, pytz.utc)
datetime.datetime(1969, 12, 31, 12, 0, tzinfo=<UTC>)
>>> datetime.datetime.fromtimestamp(-43201, pytz.utc)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 22] Invalid argument

示例使用 pytz 来简化时区信息,但没有它也会出现错误。

最佳答案

如果您收到此错误并且您没有使用明显错误的时间戳,请检查您的单位。

fromtimestamp 需要以秒为单位的时间戳,而以毫秒为单位获取时间戳是很常见的(例如,我在尝试解析从 Moment.js 在日历小部件中生成的时间戳时发现了这一点)。

以时间戳 1523443804214 为例 - 这是 2018 年 4 月 11 日,大约在我发布这篇文章前 15 分钟。根据Epoch Converter ,没问题,但注意:“假设这个时间戳是以毫秒为单位的:”

在 Python 中,这会返回一个 OSError:

In [15]: datetime.fromtimestamp(1523443804214.0)
---------------------------------------------------------------------------
OSError Traceback (most recent call last)
<ipython-input-15-0c8efd251031> in <module>()
----> 1 datetime.fromtimestamp(1523443804214.0)

但是,如果我们除以一千:

In [17]: datetime.fromtimestamp(1523443804.214)
Out[17]: datetime.datetime(2018, 4, 11, 11, 50, 4, 214000)

结果是我们所期望的。

关于Python fromtimestamp OSError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37494983/

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