提问人:Isidro Arias 提问时间:9/7/2023 最后编辑:FObersteinerIsidro Arias 更新时间:9/7/2023 访问量:50
tzinfo 为 None 时的 Python datetime DST
Python datetime DST when tzinfo is None
问:
在 3 月的最后一个星期日调用该方法返回: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)
答:
2赞
Anentropic
9/7/2023
#1
https://docs.python.org/3/library/datetime.html#datetime.datetime.timestamp
假设 Naive 实例表示本地时间,此方法依赖于平台 C mktime() 函数来执行转换。
datetime
“naïve”表示没有 tzinfo,因此该方法隐式地将它们视为本地时间,因此您看到的差异为零。timestamp
同时,日期数学将它们视为没有时区的抽象日期时间,因此生成的时间增量不考虑 DST。after - before
评论
timestamp()