在三月的最后一个周日调用方法
timestamp
返回:
>>> import datetime
>>> before = datetime.fromisoformat("2023-03-26 02:00:01")
>>> after = datetime.fromisoformat("2023-03-26 03:00:01")
>>> print(before.tzinfo)
None
>>> print(after.tzinfo)
None
>>> after.timestamp() - before.timestamp()
0.0
即使相隔一个小时,它们也是相等的。我本以为 tzinfo 为
None
时不会处理夏令时
同时,当使用减法运算符时,它会捕获差异
>>> after - before
datetime.timedelta(seconds=3600)
https://docs.python.org/3/library/datetime.html#datetime.datetime.timestamp
Naive
实例假设代表本地时间,此方法依赖于平台 C mktime() 函数来执行转换。datetime
“naive”意味着没有 tzinfo,因此
timestamp
方法隐式地将它们视为当地时间,因此您看到的差异为零。
同时,
after - before
日期数学将它们视为没有时区的抽象日期时间,因此生成的时间增量不考虑 DST。