Opened 18 years ago
Last modified 13 years ago
#2626 closed Bug
Datetime handling is broken when dealing with more than one time zone — at Version 8
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | Core (Other) | Version: | |
Severity: | Normal | Keywords: | |
Cc: | mike.scott@…, nreilly@…, George Song, miracle2k, jedie, Forest Bond, bronger@…, Chris Chambers, Dan Fairs, cg@…, louis30, David Foster | Triage Stage: | Accepted |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
Django doesn't handle multiple time zones well.
Datetimes are potentially stored with a time zone offset based on settings.TIME_ZONE
(only for PostgreSQL), and retrieved as naive datetime
objects. This is fine when working on a standard site publishing items within a single time zone, but quickly becomes pathological when working with more than one time zone, or when transitioning an existing site to a new time zone.
I propose that Django's datetime handling be altered to ignore settings.TIME_ZONE
on all database backends, and let the appropriate Fields handle time zone conversion. I've already written a DateTimeZoneField
that appropriately handles multiple time zones and returns timezone-aware datetime
objects; for it to work consistently, however, the PostgreSQL backends need to stop using TIMESTAMP WITH TIME ZONE
and SET TIME ZONE
.
In summary:
1) The PostgreSQL backends should ignore time zones completely.
2) An appropriate Field
, rather than a backend, should handle time zone support.
Discussion thread:
http://groups.google.com/group/django-developers/browse_thread/thread/b8c885389374c040
Change History (8)
comment:1 by , 18 years ago
Triage Stage: | Unreviewed → Accepted |
---|
comment:2 by , 17 years ago
Reporter: | changed from | to
---|
comment:3 by , 17 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:4 by , 17 years ago
Cc: | added |
---|
comment:5 by , 17 years ago
Owner: | removed |
---|---|
Status: | assigned → new |
comment:6 by , 17 years ago
Owner: | set to |
---|
comment:7 by , 17 years ago
Cc: | added |
---|
comment:8 by , 16 years ago
Description: | modified (diff) |
---|
Go ahead, Tom - write us a patch! Check out #2447 which may be related.
I agree that the
os.environ['TZ']
is an ugly hack, there are other related tickets that back this up ;)