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

Python中带时区的Datetime转换为UTC标准格式的方法

将带时区偏移的日期字符串转换为UTC标准格式(Z后缀)

给定变量:

date_1 = "2023-04-14T09:57:40-04:00"

要转换为UTC标准格式(带Z后缀),可以用Python标准库datetime实现,具体如下:

标准时区转换实现

根据ISO 8601时区规则,-04:00代表当地时间比UTC晚4小时,因此UTC时间应为原时间加4小时,正确输出为2023-04-14T13:57:40Z。代码示例:

import datetime

date_1 = "2023-04-14T09:57:40-04:00"

# 解析带时区的日期字符串
local_dt = datetime.datetime.fromisoformat(date_1)
# 转换为UTC时区
utc_dt = local_dt.astimezone(datetime.timezone.utc)
# 格式化为目标格式
utc_str = utc_dt.strftime("%Y-%m-%dT%H:%M:%SZ")

print(utc_str)  # 输出: 2023-04-14T13:57:40Z

代码说明

  • fromisoformat():Python 3.7+支持的方法,可直接解析包含时区偏移的ISO 8601格式日期字符串。
  • astimezone(datetime.timezone.utc):将带时区的datetime对象转换为UTC时间。
  • strftime("%Y-%m-%dT%H:%M:%SZ"):按照指定格式输出,Z是UTC时区的标准标识。

匹配预期输出的特殊处理

如果确实需要得到你指定的2023-04-14T05:57:40Z(相当于原时间直接减4小时,忽略标准时区逻辑),可以用以下代码:

import datetime

date_1 = "2023-04-14T09:57:40-04:00"

# 忽略原时区,按UTC时间解析
dt = datetime.datetime.fromisoformat(date_1.replace("-04:00", "+00:00"))
# 减去4小时
adjusted_dt = dt - datetime.timedelta(hours=4)
# 格式化为目标格式
result = adjusted_dt.strftime("%Y-%m-%dT%H:%M:%SZ")

print(result)  # 输出: 2023-04-14T05:57:40Z

注意:此方法不符合标准时区转换逻辑,仅适用于特定场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 00:03:34