Python中可以表示的最早时间是什么?

81 投票
4 回答
82634 浏览
提问于 2025-04-15 13:46

我写了一个函数 comp(time1, time2),这个函数会在 time1 小于 time2 的时候返回 True。现在我有一个情况是 time1 必须总是小于 time2。我希望 time1 的值尽可能小,也就是说,它要表示最早的时刻。我该怎么得到这个时间呢?

4 个回答

4

datetime 模块中,有些函数会遵循 datetime.MINYEARdatetime.MAXYEAR 的限制,如果日期超出了这个范围,就会报 ValueException 错误。这两个值分别是1和9999。

calendar 模块很依赖 datetime 模块,但一般来说,它遵循的是一种叫做“前瞻性格里高利历法”,这种历法在时间上是无限延伸的。

time 模块也没有对时间元组中的年份做特别的限制,它只用自某个起始时间以来的秒数来计算时间和日期。


不过,要注意的是,在1582年2月12日之前的日期处理是比较麻烦的,因为那时候采用的是各种不同的地方历法,而标准的Python并不支持这些历法。

17

在Python中,datetime对象提供了一些常量

datetime.MINYEAR
The smallest year number allowed in a date or datetime object. MINYEAR is 1.

datetime.MAXYEAR
The largest year number allowed in a date or datetime object. MAXYEAR is 9999.

http://docs.python.org/library/datetime.html

181

如果你在使用 datetime 模块,那么 日期时间日期时间 对象都有一个 minmax 属性。

>>> from datetime import date, time, datetime
>>> date.min
datetime.date(1, 1, 1)
>>> date.max
datetime.date(9999, 12, 31)
>>> time.min
datetime.time(0, 0)
>>> time.max
datetime.time(23, 59, 59, 999999)
>>> datetime.min
datetime.datetime(1, 1, 1, 0, 0)
>>> datetime.max
datetime.datetime(9999, 12, 31, 23, 59, 59, 999999)

撰写回答