[Python-ideas] Happy leap second
Alexander Belopolsky
alexander.belopolsky at gmail.com
Sat Jun 30 16:23:45 CEST 2012
Even though many have hoped that the authorities would stop fiddling
with our clocks, today a leap second will be inserted in UTC.
Systems using Olson/IANA timezone database have a way to deal with
this without adjusting their clocks, but few systems are configured
that way:
$ TZ=right/UTC date -d @1341100824
Sat Jun 30 23:59:60 UTC 2012
(1341100824 is the number of seconds since epoch including the leap seconds.)
Python's time module works fine with the "right" timezones:
>>> import time
>>> print(time.strftime('%T', time.localtime(1341100824)))
23:59:60
but the datetime module clips the leap second down to the previous second:
>>> from datetime import datetime
>>> from datetime import datetime
>>> print(datetime.fromtimestamp(1341100824).strftime('%T'))
23:59:59
>>> print datetime.fromtimestamp(1341100823).strftime('%T')
23:59:59
BDFL has been resisting adding support for leap seconds to the
datetime module [1], but as the clocks become more accurate and
synchronization requirements become stricter, we may want to revisit
this issue.
[1] http://mail.python.org/pipermail/python-ideas/2010-June/007307.html
More information about the Python-ideas
mailing list