如何在Python中将带时区信息的字符串转换为UTC格式?
Python将带时区的时间字符串转换为UTC格式
直接用Python标准库的datetime模块就能搞定,步骤如下:
- 用
datetime.fromisoformat()解析输入的带时区字符串,这个方法原生支持YYYY-MM-DDTHH:MM:SS.fff±HH:MM这种ISO格式的时间 - 调用
astimezone(datetime.timezone.utc)把时间转成UTC时区的对象 - 最后格式化输出成带
Z后缀的UTC格式字符串
代码示例:
import datetime # 输入的带时区时间字符串 time_input = "2023-01-24T22:18:00.089-05:00" # 解析为带时区的datetime对象 dt_tz = datetime.datetime.fromisoformat(time_input) # 转换为UTC时间 dt_utc = dt_tz.astimezone(datetime.timezone.utc) # 方式1:用isoformat后替换后缀 utc_result = dt_utc.isoformat().replace("+00:00", "Z") # 方式2:用strftime精确控制格式(适合需要严格控制毫秒位数的场景) # utc_result = dt_utc.strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3] + "Z" print(utc_result) # 输出:2023-01-25T03:18:00.089Z
两种格式化方式说明:
- 方式1简单快捷,
isoformat()默认输出的UTC时间后缀是+00:00,替换成Z就符合要求了 - 方式2用
strftime可以精准控制每一部分的格式,%f会输出微秒(6位),取前3位就是毫秒,再加上Z后缀即可
内容的提问来源于stack exchange,提问作者jakeMantle
相关产品推荐
相关产品推荐

