What is the oldest time that can be represented in Python?
I have written a function comp(time1, time2)
which will return True
when time1
is less than time2
. I have a scenario where time1
should always be less than time2
. I need time1
to have the least possible value (i.e. represent the earliest possible moment). How can I get this time?
If using the datetime module, date, time, and datetime objects all have a min
and max
attribute.
>>> 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)
In python, the datetime object exports the following constants
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
Certain functions in the datetime
module obey datetime.MINYEAR
and datetime.MAXYEAR
and will raise a ValueException
for dates outside that range. These are assigned to 1 and 9999, respectively.
The calender
module relies heavily on the datetime
module, but in general, observes the “proleptic Gregorian”, which extends indefinately in both directions.
the time
module similarly places no particular restrictions on year elements in time tuple values, and calculates times and dates using only seconds since the epoch.
That being said, you cannot reliably process dates before about February 12, 1582, when the Gregorian calender was adopted. Before that day, dates were computed using a variety of location dependent calenders, for which there is no support in standard python.