Roy Smith <r...@panix.com> writes: > I have two datetimes. One is offset-naive. The other is offset-aware, > but I happen to know its offset is 0 (i.e. GMT).
Do you know the timezone of the offset-naive value? Or is the above mixed up, and you mean “one is offset-aware; the other is offset-naive, but I happen to know its offset is UTC+0”? > How can I compare these? Assuming you have a datetime value which is timezone-naive, and you have no way of getting its timezone, and are unwilling to guess, you can't sensibly compare that value to a datetime in a specific timezone:: >>> import datetime >>> import pytz >>> timestamp_a = datetime.datetime(2012, 7, 1, 3, 45, 0) >>> timestamp_b = datetime.datetime( ... 2012, 8, 1, 20, 15, 0, tzinfo=pytz.UTC) >>> timestamp_a.tzinfo is None True >>> timestamp_b.tzinfo <UTC> >>> timestamp_a == timestamp_b Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: can't compare offset-naive and offset-aware datetimes So I'll assume that my interpretation about the mix-up is true, and that you actually have a situation like the following:: >>> import datetime >>> import pytz >>> timestamp_a = datetime.datetime(2012, 7, 1, 3, 45, 0) >>> timezone_for_a = pytz.UTC >>> timestamp_b = datetime.datetime( ... 2012, 8, 1, 20, 15, 0, tzinfo=pytz.timezone("Asia/Gaza")) >>> timestamp_a.tzinfo is None True >>> timestamp_b.tzinfo <DstTzInfo 'Asia/Gaza' EET+2:00:00 STD> In which case, you can create a new timezone-aware value using the timezone-naive value and the timezone you've decided to apply:: >>> timestamp_c = timestamp_a.replace(tzinfo=timezone_for_a) >>> timestamp_c.tzinfo <UTC> >>> timestamp_c == timestamp_b False >>> timestamp_c > timestamp_b False >>> timestamp_c < timestamp_b True > May the flies of a thousand Norwegian Blue parrots infest the armpits of > whoever invented timezones. Heh. I'm fine with timezones; they are a good-enough solution to allow our puny brains to speak about points in time in a reality that refuses to accommodate our prejudice that the time of day is the same everywhere on the globe. What I'm not fine with is politicians who think it's a fun game to fiddle with the specific timezone definitions with little advance notice and leave we programmers to clean up the mess they keep making. Those people are sorely in need of a nasal infestation of parrot fleas. -- \ “For every complex problem, there is a solution that is simple, | `\ neat, and wrong.” —Henry L. Mencken | _o__) | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list