给定以下代码:
value = time.mktime(datetime.fromtimestamp(timestamp).timetuple())
这是否可能产生 OverflowError 'mktime argument out of range',如果是,什么范围的时间戳会导致这种情况?
最佳答案
是的。我比 UTC 和 Windows 提前两个小时。我在 int32 范围的最后两个小时收到错误:
>>> def roundtrip(x):
... return time.mktime(datetime.datetime.fromtimestamp(x).timetuple())
...
>>> roundtrip(2**31-1-7200)
2147476447.0
>>> roundtrip(2**31-7200)
OverflowError: mktime argument out of range
>>> roundtrip(2**31-1)
OverflowError: mktime argument out of range
>>> roundtrip(2**31)
ValueError: timestamp out of range for platform time_t
关于python - 通过 Python 的 mktime 的往返是否有可能因 'out of range' 而失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8499112/