mirror of https://github.com/django/django.git
Improved LocalTimezone._isdst() to handle dates before approximately 1901-12-01 (the specific cutoff date is platform-specific). Refs #1443
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7945 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
c4d0cfe1ee
commit
f6fafc02c8
|
@ -60,9 +60,17 @@ class LocalTimezone(tzinfo):
|
|||
tt = (dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.weekday(), 0, -1)
|
||||
try:
|
||||
stamp = time.mktime(tt)
|
||||
except OverflowError:
|
||||
# 32 bit systems can't handle dates after Jan 2038, so we fake it
|
||||
# in that case (since we only care about the DST flag here).
|
||||
except (OverflowError, ValueError):
|
||||
# 32 bit systems can't handle dates after Jan 2038, and certain
|
||||
# systems can't handle dates before ~1901-12-01:
|
||||
#
|
||||
# >>> time.mktime((1900, 1, 13, 0, 0, 0, 0, 0, 0))
|
||||
# OverflowError: mktime argument out of range
|
||||
# >>> time.mktime((1850, 1, 13, 0, 0, 0, 0, 0, 0))
|
||||
# ValueError: year out of range
|
||||
#
|
||||
# In this case, we fake the date, because we only care about the
|
||||
# DST flag.
|
||||
tt = (2037,) + tt[1:]
|
||||
stamp = time.mktime(tt)
|
||||
tt = time.localtime(stamp)
|
||||
|
|
Loading…
Reference in New Issue