[Python-Dev] datetime module enhancements
Guido van Rossum
guido at python.org
Fri Mar 9 18:13:12 CET 2007
On 3/9/07, skip at pobox.com <skip at pobox.com> wrote:
> Christian> I'm proposing some small additions to the datetime module:
>
> >>> td = timedelta(minutes=1, seconds=7, microseconds=500)
> >>> int(td)
> 67
> >>> long(td)
> 67L
> >>> float(td)
> 67.5
> >>> round(td)
> 68.0
>
> Casting to the number of seconds seems a bit arbitrary. Why not cast to the
> number of days or number of microseconds?
Because seconds are what's used everywhere else when Python represents
time as a number (time.time(), time.sleep(), select, socket timeout,
etc.)
> If you allow interpretation of
> timedeltas as int, long or float I'd argue that round not be included.
> Instead, just round the output of float.
>
> Christian> datetime.datetime has a method (class factory)
> Christian> fromtimestamp() but its instances are missing a totimestamp()
> Christian> method that return the Unix timestamp for a date (seconds
> Christian> since 1970-01-01 00:00:00 UTC).
>
> The range of datetime objects far exceeds that of the current Unix
> timestamp. Given that the range of current (32-bit) Unix timestamps is
> approximately 1970 to 2038, What would the output of this be?
>
> dt = datetime.datetime(3000, 1, 1, 0, 0, 0)
> print dt.totimestamp()
> dt = datetime.datetime(1900, 1, 1, 0, 0, 0)
> print dt.totimestamp()
If you extend the range to 64 bits there's no problem: the first
should print 32503680000, the second -2208988800.
--
--Guido van Rossum (home page: http://www.python.org/~guido/)
More information about the Python-Dev
mailing list