On Thu, Jul 2, 2015 at 2:36 AM, Peter Pearson <pkpearson@nowhere.invalid> wrote: > On Wed, 1 Jul 2015 17:15:38 +1000, Chris Angelico <ros...@gmail.com> wrote: >> >> Interestingly, when I tried this (pytz version 2015.4, Python 2.7.9, >> Debian Jessie), I saw utcoffset() showing (-1, 58020) for both. That >> seems... odd. And I can't fault your dates - those definitely ought to >> be easily inside and easily outside the DST boundaries. When I try >> those dates in an unrelated time converter, they do show seven- and >> eight- hour offsets to UTC. Maybe we're both misunderstanding the >> meaning of utcoffset()? > > Here's a very simple demonstration that either something is wrong > or I don't understand how datetime and tzinfo are supposed to work: > > $ python > Python 2.7.3 (default, Mar 13 2014, 11:03:55) >>>> from pytz import timezone >>>> from datetime import datetime >>>> pacific = timezone("US/Pacific") >>>> print(datetime(2014, 7, 7, 12, tzinfo=pacific)) > 2014-07-07 12:00:00-08:00 >>>> print(datetime(2014, 1, 7, 12, tzinfo=pacific)) > 2014-01-07 12:00:00-08:00 >>>> > > The "-08:00" is appropriate in the second (January) case, but the > first case is in July, and should have "-07:00".
Interesting. I poked around with the docstring for pytz.timezone and replicated it more exactly, and this appears to work: $ python Python 2.7.9 (default, Mar 1 2015, 12:57:24) [GCC 4.9.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from pytz import timezone >>> from datetime import datetime >>> pacific = timezone("US/Pacific") >>> utc = timezone("UTC") >>> print(datetime(2014, 7, 7, 12, tzinfo=utc).astimezone(pacific)) 2014-07-07 05:00:00-07:00 >>> print(datetime(2014, 1, 7, 12, tzinfo=utc).astimezone(pacific)) 2014-01-07 04:00:00-08:00 Clearly I do not understand what's going on here. ChrisA -- https://mail.python.org/mailman/listinfo/python-list