mktime, how to handle dates before 01-01-1970 ?
Gabriel Genellina
gagsl-py2 at yahoo.com.ar
Mon Oct 5 20:35:21 EDT 2009
En Mon, 05 Oct 2009 20:54:18 -0300, Stef Mientki <stef.mientki at gmail.com>
escribió:
> I want to handle datetime vars in a general way, so I use the default
> time-format,
> so I can use the standard cinversion procedures.
> Time format is the time difference since 1-1-1970.
>
> So how do I handle dates before 1-1-1970 ?
Use the datetime module and manage the dates as actual datetime objects,
not as formatted strings.
py> import datetime
py> birthdate = datetime.datetime(1914, 7, 23)
py> birthdate
datetime.datetime(1914, 7, 23, 0, 0)
py> now = datetime.datetime.now()
py> now - birthdate
datetime.timedelta(34773, 77146, 765000)
py> _.days // 365
95
py> datetime.datetime(1931, 8, 23)
datetime.datetime(1931, 8, 23, 0, 0)
py> datetime.datetime(1851, 6, 12)
datetime.datetime(1851, 6, 12, 0, 0)
py> datetime.datetime(1492, 10, 12)
datetime.datetime(1492, 10, 12, 0, 0)
py> a = datetime.datetime(1492, 10, 12)
py> b = datetime.datetime(2009, 10, 5)
py> (b - a) // 365
datetime.timedelta(517, 27932, 54794)
py> b = datetime.datetime.now()
py> _.days
34773
py> _.days // 365
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'int' object has no attribute 'days'
py> now - birthdate
datetime.timedelta(34773, 77146, 765000)
> I'ld expect times before 1-1-1970, simply to become negative numbers
> (I'm interested in the age of living people, so that would suffice).
>
> Is there a general solution, (other library)
> or would it be better to handle all dates in the Delphi format (number
> of days since 1-1-1900
py> birthdate.toordinal()
698912
(number of days since 1 AD, approximately)
--
Gabriel Genellina
More information about the Python-list
mailing list