diff options
| author | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2007-06-25 13:46:01 +0000 |
|---|---|---|
| committer | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2007-06-25 13:46:01 +0000 |
| commit | 03ec6423c4850b141730333be4898858e0d45068 (patch) | |
| tree | 307997463efc5c54b1dab77f23f73522fa9baab9 | |
| parent | daaa3a1dde1d400d57206b258ae62282521461c3 (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.py | 10 |
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) |
