我在Windows10x64上使用Python3.6.0。在
我刚刚发现在time.ctime(seconds)
,seconds
参数有一个隐式最大值,即32536799999,几乎等于2^34.92135
。在
这是最大值吗?在
错误信息只是说这是一个无效的数字。在
>>> import time
>>> time.ctime(32536799999)
>>> 'Mon Jan 19 15:59:59 3001'
>>> time.ctime(32536799999+1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 22] Invalid argument
我搜索了一下Python文档,但是没有找到任何关于它的信息。我要在我的实验室里在Ubuntu上检查这个问题
我在用
3.6.1 |Continuum Analytics, Inc.| (default, May 11 2017, 13:09:58) \n[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]
在Windows10机器上运行的Ubuntu16.04VM中。在我把你的ctime调用分解到它的各个部分,去调查,但是我没有达到同样的最大值。在
或者从3.6.0到3.6.1中修复了一些问题,或者您的计算机遇到了一些有趣的问题。在
我确实在3.6.1中看到了以下与时间相关的变化: https://www.python.org/dev/peps/pep-0495/ 我想知道你碰巧用的时间是不是正好落在了一个折痕或一个缝隙里?你能试着在你的系统上增加一个多小时,看看它是否再次生效?在
time
文档没有提到任何限制,但是^{然后我们去Windows documentation:
所有与时间相关的函数(包括
ctime
)都是以相同的方式工作的。因此,在Windows10上,您可以可靠地在时间戳之间转换的最大日期是3000-12-31T23:59:59Z正在尝试获取独立于平台的最大时间戳is difficult。在
这一定是因为您安装了Python,在版本
3.5
中,我从未遇到过这样的错误:即使我处理一个巨大的数字,它也会抛出一个不同的
error
。在相关问题 更多 >
编程相关推荐