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.
|