Python中可以表示的最早时间是什么?
我写了一个函数 comp(time1, time2)
,这个函数会在 time1
小于 time2
的时候返回 True
。现在我有一个情况是 time1
必须总是小于 time2
。我希望 time1
的值尽可能小,也就是说,它要表示最早的时刻。我该怎么得到这个时间呢?
4 个回答
4
在 datetime
模块中,有些函数会遵循 datetime.MINYEAR
和 datetime.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.
181
如果你在使用 datetime 模块,那么 日期、时间 和 日期时间 对象都有一个 min
和 max
属性。
>>> 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)