django/tests/regressiontests/utils/dateformat.py

49 lines
1.3 KiB
Python

"""
>>> from datetime import datetime, date
>>> from django.utils.dateformat import format
>>> from django.utils.tzinfo import FixedOffset, LocalTimezone
# date
>>> d = date(2009, 5, 16)
>>> date.fromtimestamp(int(format(d, 'U'))) == d
True
# Naive datetime
>>> dt = datetime(2009, 5, 16, 5, 30, 30)
>>> datetime.fromtimestamp(int(format(dt, 'U'))) == dt
True
# datetime with local tzinfo
>>> ltz = LocalTimezone(datetime.now())
>>> dt = datetime(2009, 5, 16, 5, 30, 30, tzinfo=ltz)
>>> datetime.fromtimestamp(int(format(dt, 'U')), ltz) == dt
True
>>> datetime.fromtimestamp(int(format(dt, 'U'))) == dt.replace(tzinfo=None)
True
# datetime with arbitrary tzinfo
>>> tz = FixedOffset(-510)
>>> ltz = LocalTimezone(datetime.now())
>>> dt = datetime(2009, 5, 16, 5, 30, 30, tzinfo=tz)
>>> datetime.fromtimestamp(int(format(dt, 'U')), tz) == dt
True
>>> datetime.fromtimestamp(int(format(dt, 'U')), ltz) == dt
True
>>> datetime.fromtimestamp(int(format(dt, 'U'))) == dt.astimezone(ltz).replace(tzinfo=None)
True
>>> datetime.fromtimestamp(int(format(dt, 'U')), tz).utctimetuple() == dt.utctimetuple()
True
>>> datetime.fromtimestamp(int(format(dt, 'U')), ltz).utctimetuple() == dt.utctimetuple()
True
# Epoch
>>> utc = FixedOffset(0)
>>> udt = datetime(1970, 1, 1, tzinfo=utc)
>>> format(udt, 'U')
u'0'
"""
if __name__ == "__main__":
import doctest
doctest.testmod()