当我在 python 的日期时间中使用两种不同的方法(使用 timestamp() 或total_seconds())评估两个日期之间的秒数时,我得到不同的结果。为什么是这样?或者我做错了什么?这是我的意思的一个例子。
t1=dt.datetime(1970,6,12,0,0,0)
t2=dt.datetime(1970,1,1,0,0,0)
print(t1.timestamp()-t2.timestamp())
print((t1-t2).total_seconds())
我得到的答案是:
13993200.0
13996800.0
这种差异是由夏令时造成的。如果您的一个日期在您所在时区的 DST 范围内,而另一个日期不在您所在时区的 DST 范围内,则您的计算结果会出现一小时误差。
从1966年到1973年,美国的夏令时从四月的最后一个星期日到十月的最后一个星期日,这解释了@JoshuaRLi 的发现.
看起来,在减去两个日期时,它并没有关注 DST 差异;t1 - t2
产生datetime.timedelta(162)
,相差 162 天,尽管从技术上讲,小时数的差异为 162 * 24 - 1 小时(-1 表示跳过 DST)。timestamp
正在处理这个问题(两个时间戳都是相对于 UTC 的,因此 DST 时间戳正确地显示为早一小时,因为生成它时跳过了一小时)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)