Python如何将PDT时区的datetime对象转换为UTC时区时间
实现方法
标准库实现(Python 3.2+ 无需第三方依赖)
你提供的datetime实例已经是配置了tzinfo的时区感知对象,直接调用astimezone()方法传入UTC时区即可完成转换,代码示例如下:
import datetime # 你的原始带PDT时区的datetime对象 obj = datetime.datetime(2021, 6, 28, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(hours=-7), name='PDT')) # 转换为UTC时区 utc_obj = obj.astimezone(datetime.timezone.utc)
你提到的示例验证结果完全符合预期:
- 原始值:
2021-05-02 10:00:00.000 -07:00 - 转换后值:
2021-05-02 17:00:00+00:00
老项目适配(使用pytz的场景)
如果你的项目仍在使用pytz管理时区,替换UTC时区参数即可:
import datetime import pytz obj = datetime.datetime(2021, 6, 28, 2, 15, tzinfo=pytz.FixedOffset(-420)) # -7小时等于-420分钟 utc_obj = obj.astimezone(pytz.utc)
注意事项
- 该方法仅适用于已配置
tzinfo的时区感知datetime对象,如果你的datetime是没有时区信息的naive对象,需要先手动赋值tzinfo或调用对应时区的localize方法后再转换。
内容的提问来源于stack exchange,提问作者Pranjal Jadhav
相关产品推荐
相关产品推荐

