UTC "timezone" causing brain explosions
Ethan Furman
ethan at stoneleaf.us
Wed Jan 29 17:21:00 EST 2014
On 01/29/2014 01:52 PM, Skip Montanaro wrote:
> Following up on my earlier note about UTC v. GMT, I am having some
> trouble grokking attempts to convert a datetime into UTC.
>
> Okay, let's see what GMT does for us:
>
>>>> GMT = pytz.timezone("GMT")
>>>> u = GMT.normalize(s)
>>>> u
> datetime.datetime(2014, 1, 29, 21, 39, 35, 263666, tzinfo=<StaticTzInfo 'GMT'>)
>>>> u.hour
> 21
>
> That looks correct, but I don't understand why I don't get hour==21
> out of the UTC.normalize call. It's like it's a no-op.
Having not examined the code, I can't tell you why UTC is different. I can say that .astimezone seems to work in all cases:
--> GMT
<StaticTzInfo 'GMT'>
--> UTC
<UTC>
--> LOCAL_TZ = pytz.timezone("America/Los_Angeles")
--> now = datetime.datetime.now()
--> s = LOCAL_TZ.localize(now)
--> s
datetime.datetime(2014, 1, 29, 14, 9, 56, 494967, tzinfo=<DstTzInfo 'America/Los_Angeles' PST-1 day, 16:00:00 STD>)
--> s.astimezone(UTC)
datetime.datetime(2014, 1, 29, 22, 9, 56, 494967, tzinfo=<UTC>)
--> s.astimezone(GMT)
datetime.datetime(2014, 1, 29, 22, 9, 56, 494967, tzinfo=<StaticTzInfo 'GMT'>)
--
~Ethan~
More information about the Python-list
mailing list