python - 日期时间值小于 datetime.min 是什么意思?

标签 python datetime timedelta

这里发生了什么?

这是预期的:

>>> datetime.min - timedelta(days=1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: date value out of range

意外的:

>>> datetime.min - timedelta(days=2)
datetime.datetime(1, 0, 255, 0, 0)

>>> datetime.min > (datetime.min - timedelta(days=2))
True

在 python 中,从 datetime.min 中减去这些值意味着什么?它们代表什么日期?为什么有些情况不会触发 OverflowError?

最佳答案

因为你需要升级到 Python 2.6 或更高版本,它修复了这个错误。

$ python2.5 -c 'import datetime; print(datetime.datetime.min - datetime.timedelta(days=2))'
0001-00-255 00:00:00
$ python2.6 -c 'import datetime; print(datetime.datetime.min - datetime.timedelta(days=2))'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
OverflowError: date value out of range
$ python2.7 -c 'import datetime; print(datetime.datetime.min - datetime.timedelta(days=2))'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
OverflowError: date value out of range
$ python3.3 -c 'import datetime; print(datetime.datetime.min - datetime.timedelta(days=2))'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
OverflowError: date value out of range

您是否需要有人追踪错误编号、补丁和 python-dev 讨论,或者这些信息对您来说是否足够?

关于python - 日期时间值小于 datetime.min 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13186471/

相关文章:

python - 如何解析日志文本文件、解析日期时间并获取时间增量总和

python - 如何导入带有虚线路径的模块?

python - 非常基本的闹钟打不开网页浏览器

php - 如何创建人类可读的时间戳?

python - 比较python中的时间增量

java - 如何在Java中获取准确的deltaTime

Java 2d 游戏 - 增量时间和碰撞问题

python - 在 Python 和 AngularJS 中解析 JSON

python - 在 Linux 上安装为 Windows 和 MacOS 构建的 Python 包

Perl 两个日期相减