summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2007-06-25 13:46:01 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2007-06-25 13:46:01 +0000
commit03ec6423c4850b141730333be4898858e0d45068 (patch)
tree307997463efc5c54b1dab77f23f73522fa9baab9
parentdaaa3a1dde1d400d57206b258ae62282521461c3 (diff)
unicode: A different version of [5532], based on feedback from Windows users
in far away countries. git-svn-id: http://code.djangoproject.com/svn/django/branches/unicode@5534 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/utils/tzinfo.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/django/utils/tzinfo.py b/django/utils/tzinfo.py
index 8a1a887346..0c85735941 100644
--- a/django/utils/tzinfo.py
+++ b/django/utils/tzinfo.py
@@ -1,9 +1,12 @@
"Implementation of tzinfo classes for use with datetime.datetime."
+import locale
import time
from datetime import timedelta, tzinfo
from django.utils.encoding import smart_unicode
+DEFAULT_ENCODING = locale.getdefaultlocale()[1]
+
class FixedOffset(tzinfo):
"Fixed offset in minutes east from UTC."
def __init__(self, offset):
@@ -26,7 +29,7 @@ class LocalTimezone(tzinfo):
"Proxy timezone information from time module."
def __init__(self, dt):
tzinfo.__init__(self, dt)
- self._tzname = smart_unicode(time.tzname[self._isdst(dt)])
+ self._tzname = self.tzname(dt)
def __repr__(self):
return self._tzname
@@ -44,7 +47,10 @@ class LocalTimezone(tzinfo):
return timedelta(0)
def tzname(self, dt):
- return unicode(time.tzname[self._isdst(dt)])
+ try:
+ return smart_unicode(time.tzname[self._isdst(dt)], DEFAULT_ENCODING)
+ except UnicodeDecodeError:
+ return None
def _isdst(self, dt):
tt = (dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.weekday(), 0, -1)