0

请看下面的描述,让我知道为什么 31/12/9999 23:59:29 的时间戳不是 253402264799,而是 253402261199。

非常感谢,

休伊

import datetime
d1 = datetime.datetime(1970, 1,1,10,0,0)  ; I am in zone time 10
d2 = datetime.datetime(1970, 1,2,23,59, 59)
print d2 - d1 --> 1 day, 13:59:59  
convert 1 day, 13:59:59 to sec
= 136799s  <-- (48 + 14) * 3600 - 1

d1 = datetime.datetime(1970, 1,1,10,0,0)
d2 = datetime.datetime(9999, 12, 31, 23, 59, 59)  
print d2 - d1 --> 2932896 days, 13:59:59 
convert 2932896 days, 13:59:59 to sec
253402264799sec <-- (2932896 * 24 + 14) * 3600 - 1

print datetime.datetime.fromtimestamp(253402264799) --> exception throw

print datetime.datetime.fromtimestamp(253402261199) --> 31/12/9999 23:59:59
4

1 回答 1

0

原因是时间夏令时。夏令时 10 区提前 11 小时。

于 2013-03-07T21:30:48.270 回答