与 pytz 的时区差异
某些时区在最初从 pytz 获取时表现出特殊的偏移。例如,Asia/Hong_Kong 最初显示 7 小时 37 分钟的偏移量:
<br>import pytz<br>pytz.timezone('Asia/Hong_Kong')<br><dsttzinfo std><br>
差异来源
时区和偏移量在整个历史中波动。 pytz 提供的默认时区名称和偏移量代表该区域最早可用的时区名称和偏移量,这可能看起来不寻常。
当使用 localize 将时区分配给日期时,相应的时区名称和偏移量为用过的。但是,直接使用 datetime 构造函数来分配时区并不允许进行适当的调整。
示例
考虑以下代码:
< ;pre>
导入 pytz
从日期时间导入日期时间
hk = pytz.timezone('亚洲/香港')
dt1 = datetime(2012,1,1,tzinfo=hk)
dt2 = hk.localize(datetime(2012,1,1))
如果 dt1 > dt2:
print "Why?"
在此示例中,由于初始偏移量差异,dt1 将大于 dt2。通过使用 localize,dt2 获得准确的偏移量,从而对两个日期进行逻辑比较。
以上是为什么 pytz 最初显示意外的时区偏移?的详细内容。更多信息请关注PHP中文网其他相关文章!