在python中可以表示的最早时间是多少?

Pra*_*bhu 35 python python-3.x

我写了一个函数comp(time1,time2),当time1小于time2时,它将返回true.我有一个场景,其中time1应始终小于time2.我需要time1来获得最小的值(日期).如何找到这个时间以及如何形成相应的对象.

cle*_*oux 66

如果使用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)
Run Code Online (Sandbox Code Playgroud)

  • 这应该是公认的答案。 (6认同)

Sil*_*rom 14

在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.
Run Code Online (Sandbox Code Playgroud)

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


kor*_*ona 6

如果您使用的是标准问题unix时间戳值,那么最早可表示的时刻可以追溯到1970年:

>>> import time
>>> time.gmtime(0)
(1970, 1, 1, 0, 0, 0, 3, 1, 0)
Run Code Online (Sandbox Code Playgroud)

  • 实际上没有,对于time.gmtime(),它是-67768040609740804,为今年1月1日-2147481748. (7认同)
  • @AntsAasma 在我的系统(Mac 上的 Python 3.6.1)上,最小值实际上是“-67768040609740800”;在比这更大的负值上调用 `gmtime`,就像你建议的那样,会产生 *OSError: [Errno 84] 值太大而无法存储在数据类型中*。尽管如此,4 秒的差异可能并不重要——无论如何,我公司的客户都没有在基督诞生前 20 亿年生日。 (2认同)