From: <ps...@us...> - 2009-01-07 20:46:49
|
Revision: 1479 http://pywebsvcs.svn.sourceforge.net/pywebsvcs/?rev=1479&view=rev Author: psha Date: 2009-01-07 20:46:41 +0000 (Wed, 07 Jan 2009) Log Message: ----------- Increase borders when timezone is ignored (MINYEAR+1, MAXYEAR-1) Always reintialize timezone offsets Modified Paths: -------------- trunk/zsi/ZSI/TCtimes.py Modified: trunk/zsi/ZSI/TCtimes.py =================================================================== --- trunk/zsi/ZSI/TCtimes.py 2009-01-06 23:45:51 UTC (rev 1478) +++ trunk/zsi/ZSI/TCtimes.py 2009-01-07 20:46:41 UTC (rev 1479) @@ -17,17 +17,20 @@ #### Code added to check current timezone offset _zero = _timedelta(0) -_dstoffset = _stdoffset = _timedelta(seconds=-_time.timezone) -if _time.daylight: _dstoffset = _timedelta(seconds=-_time.altzone) -_dstdiff = _dstoffset - _stdoffset class _localtimezone(_tzinfo): + def __init__(self, *a, **kw): + _tzinfo.__init__(self, *a, **kw) + self.__dstoffset = self.__stdoffset = _timedelta(seconds=-_time.timezone) + if _time.daylight: self.__dstoffset = _timedelta(seconds=-_time.altzone) + self.__dstdiff = self.__dstoffset - self.__stdoffset + """ """ def dst(self, dt): """datetime -> DST offset in minutes east of UTC.""" tt = _localtime(_mktime((dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.weekday(), 0, -1))) - if tt.tm_isdst > 0: return _dstdiff + if tt.tm_isdst > 0: return self.__dstdiff return _zero #def fromutc(...) @@ -43,8 +46,8 @@ """datetime -> minutes east of UTC (negative for west of UTC).""" tt = _localtime(_mktime((dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.weekday(), 0, -1))) - if tt.tm_isdst > 0: return _dstoffset - return _stdoffset + if tt.tm_isdst > 0: return self.__dstoffset + return self.__stdoffset class _fixedoffset(_tzinfo): """Fixed offset in minutes east from UTC. @@ -86,7 +89,7 @@ # Fix local copy of time tuple ltv = list(_fix_none_fields(tv)) - if ltv[0] < MINYEAR or ltv[0] > MAXYEAR: + if ltv[0] < MINYEAR + 1 or ltv[0] > MAXYEAR - 1: return tv # Unable to fix timestamp _tz_from = _tz_to_tzinfo(tz_from) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |