Django time zone problem

Programming, python

This is a Django bug specific to Windows and it took me half a day to figure out because I trusted the datetime module! Basically if you set your TIME_ZONE in the settings.py file like so:

TIME_ZONE = 'Australia/Sydney'

The datetime and time modules will always return the UTC date.

The strange thing is that if you use “python manage.py shell” you get the bug but if you just use “python” you don’t get the bug.

Correct time:

c:\project>python
Python 2.4.3 (#69, Mar 29 2006, 17:35:34) [MSC v.1310 32 bit (Intel)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2006, 9, 28, 12, 11, 38, 109000)

Django time:

c:\project>python manage.py shell --plain
Python 2.4.3 (#69, Mar 29 2006, 17:35:34) [MSC v.1310 32 bit (Intel)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.
(InteractiveConsole)
>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2006, 9, 28, 3, 12, 16, 468000)

Possible solutions:

  • Digg
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • description
  • Reddit
  • StumbleUpon

2 Responses to “Django time zone problem”

  1. SmileyChris Says:

    Well, I’ve fixed the bug. Just have to wait for it to be applied now. :)

  2. Gerald Kaszuba Says:

    Great to hear Chris. I read your patch notes on the ticket, quite weird indeed.

Leave a Reply