Opened 9 months ago
Last modified 9 months ago
#35240 closed Bug
Django doesn't set Postgres timezone to UTC when using psycopg3 — at Version 1
Reported by: | Fabi | Owned by: | nobody |
---|---|---|---|
Component: | Uncategorized | Version: | 4.2 |
Severity: | Normal | Keywords: | |
Cc: | Fabi, Mariusz Felisiak, Florian Apolloner, Simon Charette | Triage Stage: | Unreviewed |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
Configuration uses USE_TZ=True
and database defaults to America/New_York
. I would expect the connection then being set to UTC, but it is not changed:
In [4]: connections["default"].cursor().connection.info.timezone Out[4]: zoneinfo.ZoneInfo(key='America/New_York')
The wrapper and the psycopg3 timezone adapter both think its UTC though:
In [5]: connections["default"].timezone Out[5]: datetime.timezone.utc In [6]: connections["default"].cursor().connection.adapters.get_loader(TIMESTAMPTZ_OID, Format.TEXT).timezone Out[6]: datetime.timezone.utc
Looking at the code I think the problem is that the adapter gets initialized with self.timezone
which then gets compared with self.timezone
later again, resulting in a no-op:
Note:
See TracTickets
for help on using tickets.