Can't subtract offset-naive and offset-aware datetimes

datetime, postgresql, python, timezone

Solution

Have you tried to remove the timezone awareness?

From http://pytz.sourceforge.net/

naive = dt.replace(tzinfo=None)

may have to add time zone conversion as well.

edit: Please be aware the age of this answer. An answer involving ADDing the timezone info instead of removing it in python 3 is below. https://stackoverflow.com/a/25662061/93380

Problem

I have a timezone aware `timestamptz` field in PostgreSQL. When I pull data from the table, I then want to subtract the time right now so I can get it's age. The problem I'm having is that both `datetime.datetime.now()` and `datetime.datetime.utcnow()` seem to return timezone unaware timestamps, which results in me getting this error: ``` TypeError: can't subtract offset-naive and offset-aware datetimes ``` Is there a way to avoid this (preferably without a third-party module being used). EDIT: Thanks for the suggestions, however trying to adjust the timezone seems to give me errors.. so I'm just going to use timezone unaware timestamps in PG and always insert using: ``` NOW() AT TIME ZONE 'UTC' ``` That way all my timestamps are UTC by default (even though it's more annoying to do this).

Original source

Related problems