Opened 19 years ago
Last modified 14 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 , 19 years ago
| Triage Stage: | Unreviewed → Accepted |
|---|
comment:2 by , 18 years ago
| Reporter: | changed from to |
|---|
comment:3 by , 18 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:4 by , 18 years ago
| Cc: | added |
|---|
comment:5 by , 18 years ago
| Owner: | removed |
|---|---|
| Status: | assigned → new |
comment:6 by , 18 years ago
| Owner: | set to |
|---|
comment:7 by , 18 years ago
| Cc: | added |
|---|
comment:8 by , 17 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 ;)