You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将带时区的Datetime字符串转换为UTC标准格式?

带时区的日期时间字符串转UTC格式解决方案

你的输入字符串本身就是UTC时区(+00:00),核心需求是调整输出格式,补全毫秒位并将时区标识替换为Z。以下用Python给出两种实用实现方式:

方式一:分场景处理

from datetime import datetime

# 输入的日期时间字符串
dt_str1 = '2022-12-07T13:30:14+00:00'
dt_str2 = '2022-12-07T13:30:07.697000+00:00'

# 处理无毫秒的字符串
dt1 = datetime.fromisoformat(dt_str1)
output1 = dt1.strftime('%Y-%m-%dT%H:%M:%S.000Z')
print(output1)  # 输出:2022-12-07T13:30:14.000Z

# 处理带微秒的字符串
dt2 = datetime.fromisoformat(dt_str2)
# 截取前三位微秒作为毫秒,拼接Z后缀
output2 = dt2.strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z'
print(output2)  # 输出:2022-12-07T13:30:07.697Z

方式二:通用函数处理(推荐)

编写一个通用函数,适配所有带时区的ISO格式输入:

from datetime import datetime

def convert_to_utc_z(dt_str):
    dt_obj = datetime.fromisoformat(dt_str)
    # 将微秒转换为毫秒,不足三位自动补零
    millisecond = dt_obj.microsecond // 1000
    return f"{dt_obj.strftime('%Y-%m-%dT%H:%M:%S')}.{millisecond:03d}Z"

# 测试两个输入
print(convert_to_utc_z('2022-12-07T13:30:14+00:00'))  # 2022-12-07T13:30:14.000Z
print(convert_to_utc_z('2022-12-07T13:30:07.697000+00:00'))  # 2022-12-07T13:30:07.697Z

关键逻辑说明

  1. datetime.fromisoformat()可直接解析带时区的ISO标准字符串,无需手动处理时区偏移;
  2. 输入时区为+00:00,本身就是UTC时间,无需额外时区转换;
  3. 毫秒通过微秒整除1000得到,03d格式化确保不足三位时自动补零。

内容的提问来源于stack exchange,提问作者deepu2711

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 17:25:24