Backup of David's Livejournal

python : don't trust time.altzone


Ran into a little trouble with Python's time module. TZ is not set on my system. Everything works, except for time.altzone, it's not in sync with the other time methods. I'd expected altzone to be the same as the difference between my time and gmtime.

>>> import time
>>> time.tzname
('Pacific Standard Time', 'Pacific Daylight Time')
>>> time.daylight
1
>>> time.altzone # "Only use this if daylight is nonzero."
25200
>>> time.mktime(time.gmtime()) - time.mktime(time.localtime())
28800.0
>>> time.localtime() # The last number should be 0 == not DST
(2006, 2, 2, 12, 31, 0, 3, 33, 0)
>>> time.localtime(1154549697.0) # The last number should be 1 == DST
(2006, 8, 2, 13, 14, 57, 2, 214, 1)