python中的时区有几分钟的变化
Posted
技术标签:
【中文标题】python中的时区有几分钟的变化【英文标题】:timezones in python has couple of minutes shift 【发布时间】:2022-01-08 12:51:00 【问题描述】:from pytz import timezone
import datetime
utc = datetime.timezone.utc
tz = timezone("Europe/London")
now = datetime.datetime.now(utc)
date = now.replace(tzinfo=tz)
date_utc = date.astimezone(utc)
print(now.isoformat())
print(date.isoformat())
print(date_utc.isoformat())
可能会打印:
2021-12-01T21:30:09.170108+00:00
2021-12-01T21:30:09.170108-00:01 <---- why does it say -00:01 here?
2021-12-01T21:31:09.170108+00:00
到底为什么会有一分钟的轮班? 我是否缺少一些有关时区的基础知识?
【问题讨论】:
这能回答你的问题吗? Weird timezone issue with pytz 注意:对于 Python 3.9+,你有一个标准的 lib 模块 - zoneinfo。 Example。此外,那里没有“本地化陷阱”。replace
可以安全地与 ZoneInfo 时区对象一起使用。
是的,我找不到这个问题,我有点惊讶没有人提到它。但实际上有人做到了,不知道为什么我没有偶然发现它。广告第二条评论:很好,感谢您提供的信息!
【参考方案1】:
根据 PYTZ 的documentation
不幸的是,在许多时区使用标准日期时间构造函数的 tzinfo 参数“不起作用”。
您只能使用 localize()
或 astimezone()
将 PYTZ 时区附加到日期时间对象
【讨论】:
是的,我可以看到它不起作用 :D 那是什么原因呢? 我相信datetime
是这样解释的以上是关于python中的时区有几分钟的变化的主要内容,如果未能解决你的问题,请参考以下文章
NSdate(时区)中的问题日期时间显示过去 5 小时 30 分钟