我有一个浮动时区(例如 4.0)。
我想用给定的时区构造 datetime
。
我试过这个,
datetime.now(timezone)
但它抛出
TypeError: tzinfo argument must be None or of a tzinfo subclass, not type 'float'
所以我想知道如何从浮动中制作 tzinfo
?
原文由 l0gg3r 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个浮动时区(例如 4.0)。
我想用给定的时区构造 datetime
。
我试过这个,
datetime.now(timezone)
但它抛出
TypeError: tzinfo argument must be None or of a tzinfo subclass, not type 'float'
所以我想知道如何从浮动中制作 tzinfo
?
原文由 l0gg3r 发布,翻译遵循 CC BY-SA 4.0 许可协议
我建议您使用 pytz ,因为它可能更简单。
根据描述:
该库允许使用 Python 2.4 或更高版本进行准确的跨平台时区计算。它还解决了夏令时结束时时间不明确的问题,您可以在 Python 库参考中阅读更多相关信息
>>> from datetime import datetime >>> import pytz >>> datetime.now(tz=pytz.UTC) datetime.datetime(2021, 11, 12, 20, 59, 54, 579812, tzinfo=<UTC>) >>> datetime.now(tz=pytz.timezone("Europe/Oslo")) datetime.datetime(2021, 11, 12, 22, 0, 4, 911480, tzinfo=<DstTzInfo 'Europe/Oslo' CET+1:00:00 STD>) >>> [tz for tz in pytz.common_timezones if tz.startswith("US")] ['US/Alaska', 'US/Arizona', 'US/Central', 'US/Eastern', 'US/Hawaii', 'US/Mountain', 'US/Pacific']
原文由 teoreda 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
如果您使用的是 Python 3.2 或更新版本,则需要创建一个
datetime.timezone()
对象;它需要一个偏移量作为datetime.timedelta()
:对于较早的 Python 版本,最简单的方法是使用外部库为您定义时区对象。
dateutil
库 包括采用数字偏移量来创建时区对象的对象: