> I did mess around with pytz a bit but I was getting a lot of
> exceptions - something related to the TZ already being set or
> something like that. I don't recall exactly, and I can't scroll back
> far enough to find it.

Yes, if the tzinfo attribute has already been set, you will get errors from 
localize(). Once a datetime object has a valid timezone, you can compare it 
with other tz-aware datetime objects. They need not be in the same timezone.

For visual purposes (for instance, when writing to logfiles), it can be handy 
to display all timestamps in the same timezone. For that, you can use the 
normalize() method of timezone objects. Here's a simple example:

>>> import datetime, pytz

Here's a datetime in UTC, but still naive (no tzinfo attribute).

>>> utcnow = datetime.datetime.utcnow()
>>> print utcnow.tzinfo
None

Localize to UTC et voila!

>>> utcnow = pytz.utc.localize(utcnow)
>>> print utcnow.tzinfo
UTC
>>> chicago = pytz.timezone("America/Chicago")
>>> print utcnow
2016-12-23 20:04:51.295127+00:00
>>> print chicago.normalize(utcnow)
2016-12-23 14:04:51.295127-06:00

Different timezones, but the same time.

>>> print utcnow - chicago.normalize(utcnow)
0:00:00

Skip
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to