如何在Python 2中创建UTC datetime对象?
Python 2 中实现带 UTC 时区的 datetime 构造
直接使用 pytz 实现类 Python 3 的构造写法
因为 datetime.timezone 是 Python 3 新增特性,在 Python 2 里可以借助 pytz 库的 utc 对象直接传入构造函数的 tzinfo 参数,这和你在 Python 3 里的写法逻辑一致:
import datetime import pytz # 构造时直接指定时区,和 Python 3 写法对齐 dt = datetime.datetime(2023, 11, 28, 12, tzinfo=pytz.utc)
注:pytz 的 utc 对象是特殊情况,直接传入 tzinfo 是安全的;如果是其他时区,建议使用 localize 方法,但 UTC 无需额外处理。
兼容 Python 2 和 Python 3 的通用写法
如果需要代码同时支持两个版本,可以提前做一个时区对象的兼容处理,之后就能用统一的构造逻辑:
import datetime # 定义兼容的 UTC 时区对象 try: UTC = datetime.timezone.utc # Python 3 环境 except AttributeError: import pytz UTC = pytz.utc # Python 2 环境 # 统一构造带时区的 datetime dt = datetime.datetime(2023, 11, 28, 12, tzinfo=UTC)
内容的提问来源于stack exchange,提问作者24n8
相关产品推荐
相关产品推荐

