Browse files

When possible, sanity check the timezone setting to see if the Unix-like

box it's running on supports that setting. If checking isn't possible,
we skip it. Patch from seveas. Thanks.

Fixed #3415.

git-svn-id: bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
1 parent 255147c commit 27265f70a18ab8fb4bfacad0cdebe170c342054c @malcolmt malcolmt committed Sep 10, 2010
Showing with 6 additions and 0 deletions.
  1. +6 −0 django/conf/
@@ -103,6 +103,12 @@ def __init__(self, settings_module):
self.INSTALLED_APPS = new_installed_apps
if hasattr(time, 'tzset') and getattr(self, 'TIME_ZONE'):
+ # When we can, attempt to validate the timezone. If we can't find
+ # this file, no check happens and it's harmless.
+ zoneinfo_root = '/usr/share/zoneinfo'
+ if (os.path.exists(zoneinfo_root) and not
+ os.path.exists(os.path.join(zoneinfo_root, *(self.TIME_ZONE.split('/'))))):
+ raise ValueError("Incorrect timezone setting: %s" % self.TIME_ZONE)
# Move the time zone info into os.environ. See ticket #2315 for why
# we don't do this unconditionally (breaks Windows).
os.environ['TZ'] = self.TIME_ZONE

0 comments on commit 27265f7

Please sign in to comment.