From b984505d1367da35d38ae3c2a81a610d8657300a Mon Sep 17 00:00:00 2001 From: Malcolm Tredinnick Date: Sat, 15 Sep 2007 10:36:14 +0000 Subject: [PATCH] Fixed #5470 -- Fixed the 'Z' time format marker in templates to handle timezones west of UTC. Thanks, Paul Lanier. git-svn-id: http://code.djangoproject.com/svn/django/trunk@6275 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- AUTHORS | 1 + django/utils/dateformat.py | 13 +++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/AUTHORS b/AUTHORS index a253e89e8a..7a4faea532 100644 --- a/AUTHORS +++ b/AUTHORS @@ -182,6 +182,7 @@ answer newbie questions, and generally made Django that much better: lakin.wecker@gmail.com Nick Lane Stuart Langridge + Paul Lanier Nicola Larosa Eugene Lazutkin Jeong-Min Lee diff --git a/django/utils/dateformat.py b/django/utils/dateformat.py index d5f3499d82..0e6541c721 100644 --- a/django/utils/dateformat.py +++ b/django/utils/dateformat.py @@ -248,10 +248,15 @@ class DateFormat(TimeFormat): return doy def Z(self): - """Time zone offset in seconds (i.e. '-43200' to '43200'). The offset - for timezones west of UTC is always negative, and for those east of UTC - is always positive.""" - return self.timezone.utcoffset(self.data).seconds + """ + Time zone offset in seconds (i.e. '-43200' to '43200'). The offset for + timezones west of UTC is always negative, and for those east of UTC is + always positive. + """ + offset = self.timezone.utcoffset(self.data) + # Only days can be negative, so negative offsets have days=-1 and + # seconds positive. Positive offsets have days=0 + return offset.days * 86400 + offset.seconds def format(value, format_string): "Convenience function"