Django

Code

Changeset 7945

Show
Ignore:
Timestamp:
07/17/08 22:45:30 (4 months ago)
Author:
adrian
Message:

Improved LocalTimezone?._isdst() to handle dates before approximately 1901-12-01 (the specific cutoff date is platform-specific). Refs #1443

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/utils/tzinfo.py

    r7184 r7945  
    6161        try: 
    6262            stamp = time.mktime(tt) 
    63         except OverflowError: 
    64             # 32 bit systems can't handle dates after Jan 2038, so we fake it 
    65             # in that case (since we only care about the DST flag here). 
     63        except (OverflowError, ValueError): 
     64            # 32 bit systems can't handle dates after Jan 2038, and certain 
     65            # systems can't handle dates before ~1901-12-01: 
     66            # 
     67            # >>> time.mktime((1900, 1, 13, 0, 0, 0, 0, 0, 0)) 
     68            # OverflowError: mktime argument out of range 
     69            # >>> time.mktime((1850, 1, 13, 0, 0, 0, 0, 0, 0)) 
     70            # ValueError: year out of range 
     71            # 
     72            # In this case, we fake the date, because we only care about the 
     73            # DST flag. 
    6674            tt = (2037,) + tt[1:] 
    6775            stamp = time.mktime(tt)