示例代码
from datetime import datetime, timezone
import pytz
tzstring = 'Europe/Berlin'
t1 = datetime(2016, 6, 16, 2, 0, tzinfo=pytz.timezone(tzstring))
t2 = datetime(2016, 6, 16, 2, 0, tzinfo=timezone.utc).astimezone(pytz.timezone(tzstring))
观察到的
print(t1): 2016-06-16 02:00:00+00:53
print(t2): 2016-06-16 04:00:00+02:00
预期结果
print(t1): 2016-06-16 04:00:00+02:00 # does not match expectation
print(t2): 2016-06-16 04:00:00+02:00 # matches expectation
问题
有人能给我解释一下吗?
其他问题:
- 为什么pytz的localize()方法不能生成一个带有与本地化它的tz对象匹配的tzinfo的datetime对象?只是要求解释“代码中它从哪里来”,我的问题更多地是朝着这个方向:“为什么会出现这种情况?”- 所以可能一个接受的答案会包含一些历史背景。