[Python-checkins] python/nondist/sandbox/datetime datetime.py,1.143,1.144

tim_one@users.sourceforge.net tim_one@users.sourceforge.net
2003年1月04日 10:25:26 -0800


Update of /cvsroot/python/python/nondist/sandbox/datetime
In directory sc8-pr-cvs1:/tmp/cvs-serv16038
Modified Files:
	datetime.py 
Log Message:
Clamp out leap seconds on non-POSIX platforms. datetimes can't
represent them, and fromtimestamp() could raise a baffling ValueError
if the platform localtime()/gmtime() returned one. Note that this means
it's possible, on a non-POSIX platform, to have timestamps that differ by
a second, yet map to identical datetime objects.
Index: datetime.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/datetime/datetime.py,v
retrieving revision 1.143
retrieving revision 1.144
diff -C2 -d -r1.143 -r1.144
*** datetime.py	4 Jan 2003 14:02:55 -0000	1.143
--- datetime.py	4 Jan 2003 18:25:23 -0000	1.144
***************
*** 1285,1288 ****
--- 1285,1289 ----
 y, m, d, hh, mm, ss, weekday, jday, dst = _time.localtime(t)
 us = int(round((t % 1.0) * 1000000))
+ ss = min(ss, 59) # clamp out leap seconds if the platform has them
 return cls(y, m, d, hh, mm, ss, us)
 fromtimestamp = classmethod(fromtimestamp)
***************
*** 1303,1306 ****
--- 1304,1308 ----
 y, m, d, hh, mm, ss, weekday, jday, dst = _time.gmtime(t)
 us = int((t % 1.0) * 1000000)
+ ss = min(ss, 59) # clamp out leap seconds if the platform has them
 return cls(y, m, d, hh, mm, ss, us)
 utcfromtimestamp = classmethod(utcfromtimestamp)
***************
*** 1552,1555 ****
--- 1554,1558 ----
 y, m, d, hh, mm, ss, weekday, jday, dst = _time.localtime(t)
 us = int((t % 1.0) * 1000000)
+ ss = min(ss, 59) # clamp out leap seconds if the platform has them
 return cls(y, m, d, hh, mm, ss, us, tzinfo)
 fromtimestamp = classmethod(fromtimestamp)

AltStyle によって変換されたページ (->オリジナル) /