如何在Python中将带时区信息的时间字符串转换为UTC时间
如何将带时区的ISO时间字符串转换为UTC时间?
你可以通过Python的datetime模块三步完成转换:
- 解析字符串为带时区的datetime对象:用
fromisoformat()直接处理标准ISO 8601格式的字符串(Python 3.7+支持) - 转换为UTC时区:调用
astimezone(timezone.utc)将时区切换为UTC - 输出目标格式字符串:用
isoformat(timespec='seconds')生成带+00:00的UTC时间字符串
完整代码示例
from datetime import datetime, timezone # 输入的带时区时间字符串 input_time = "2023-09-06T22:02:44-07:00" # 解析为带时区的datetime local_dt = datetime.fromisoformat(input_time) # 转换为UTC时间 utc_dt = local_dt.astimezone(timezone.utc) # 生成目标格式的字符串 utc_time_str = utc_dt.isoformat(timespec='seconds') print(utc_time_str) # 输出结果:2023-09-07T05:02:44+00:00
兼容旧版本Python(3.6及以下)
如果你的Python版本低于3.7,fromisoformat()不支持,改用strptime()配合格式符解析:
from datetime import datetime, timezone input_time = "2023-09-06T22:02:44-07:00" # 用strptime解析,%z匹配时区偏移 local_dt = datetime.strptime(input_time, "%Y-%m-%dT%H:%M:%S%z") utc_dt = local_dt.astimezone(timezone.utc) utc_time_str = utc_dt.isoformat(timespec='seconds')
内容的提问来源于stack exchange,提问作者Ames ISU
相关产品推荐
相关产品推荐

