gpt4 book ai didi

python - pytz:为什么在时区之间转换时需要规范化?

转载 作者:IT老高 更新时间:2023-10-28 20:34:51 26 4
gpt4 key购买 nike

我正在阅读不完整的 pytz documentation我一直坚持理解其中的一部分。

Converting between timezones also needs special attention. This also needs to use the normalize method to ensure the conversion is correct.

>>> utc_dt = utc.localize(datetime.utcfromtimestamp(1143408899))
>>> utc_dt.strftime(fmt)
'2006-03-26 21:34:59 UTC+0000'
>>> au_tz = timezone('Australia/Sydney')
>>> au_dt = au_tz.normalize(utc_dt.astimezone(au_tz))
>>> au_dt.strftime(fmt)
'2006-03-27 08:34:59 EST+1100'
>>> utc_dt2 = utc.normalize(au_dt.astimezone(utc))
>>> utc_dt2.strftime(fmt)
'2006-03-26 21:34:59 UTC+0000'

我使用 normalize 尝试了这个示例 without,结果还是一样。在我看来,这个例子并没有真正解释为什么在不同时区的datetime对象之间进行转换时,我们必须使用normalize

谁能给我一个示例(如上面的示例),当不使用 normalize 时结果会有所不同。

谢谢

最佳答案

来自 pytz 文档:

In addition, if you perform date arithmetic on local times that cross DST boundaries, the results may be in an incorrect timezone (ie. subtract 1 minute from 2002-10-27 1:00 EST and you get 2002-10-27 0:59 EST instead of the correct 2002-10-27 1:59 EDT). A normalize() method is provided to correct this. Unfortunately these issues cannot be resolved without modifying the Python datetime implementation.

关于python - pytz:为什么在时区之间转换时需要规范化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1422880/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com