diff --git a/django/utils/tzinfo.py b/django/utils/tzinfo.py index dc583465b2..fc7fa8250f 100644 --- a/django/utils/tzinfo.py +++ b/django/utils/tzinfo.py @@ -13,7 +13,8 @@ class FixedOffset(tzinfo): else: self.__offset = timedelta(minutes=offset) - self.__name = u"%+03d%02d" % (offset / 60, offset % 60) + sign = offset < 0 and '-' or '+' + self.__name = u"%s%02d%02d" % (sign, abs(offset) / 60., abs(offset) % 60) def __repr__(self): return self.__name diff --git a/tests/regressiontests/utils/tests.py b/tests/regressiontests/utils/tests.py index cd93fb9c01..daae84b6d5 100644 --- a/tests/regressiontests/utils/tests.py +++ b/tests/regressiontests/utils/tests.py @@ -10,6 +10,7 @@ from django.utils.functional import SimpleLazyObject import timesince import datastructures import itercompat +import tzinfo from decorators import DecoratorFromMiddlewareTests from functional import FunctionalTestCase @@ -26,6 +27,7 @@ __test__ = { 'timesince': timesince, 'datastructures': datastructures, 'itercompat': itercompat, + 'tzinfo': tzinfo, } from dateformat import * diff --git a/tests/regressiontests/utils/tzinfo.py b/tests/regressiontests/utils/tzinfo.py new file mode 100644 index 0000000000..b62570c225 --- /dev/null +++ b/tests/regressiontests/utils/tzinfo.py @@ -0,0 +1,30 @@ +""" +>>> from django.utils.tzinfo import FixedOffset + +>>> FixedOffset(0) ++0000 +>>> FixedOffset(60) ++0100 +>>> FixedOffset(-60) +-0100 +>>> FixedOffset(280) ++0440 +>>> FixedOffset(-280) +-0440 +>>> FixedOffset(-78.4) +-0118 +>>> FixedOffset(78.4) ++0118 +>>> FixedOffset(-5.5*60) +-0530 +>>> FixedOffset(5.5*60) ++0530 +>>> FixedOffset(-.5*60) +-0030 +>>> FixedOffset(.5*60) ++0030 +""" + +if __name__ == "__main__": + import doctest + doctest.testmod()