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

Python中如何将ISO 8601/Zulu时间字符串转datetime并计算时间差

处理ISO 8601时间字符串:转换为datetime并计算时间差

首先明确:你拿到的这个时间字符串"2022-07-12T05:09:39.057266+00:00"属于ISO 8601标准格式。Zulu时间是ISO 8601里用Z替代+00:00来表示UTC时区的写法,本质和你这个格式是同一标准下的不同表现形式。

下面以Python为例,给出具体实现步骤:

一、将字符串转换为datetime对象

1. Python 3.7+ 原生支持

直接用标准库datetime的fromisoformat()方法,无需额外依赖,完美解析带时区偏移的ISO 8601字符串:

from datetime import datetime

time_str = "2022-07-12T05:09:39.057266+00:00"
dt_obj = datetime.fromisoformat(time_str)
print(dt_obj)  # 输出:2022-07-12 05:09:39.057266+00:00

2. 兼容Python 3.6及更早版本

如果你的Python版本较低,可以使用python-dateutil库(先通过pip install python-dateutil安装):

from dateutil import parser

time_str = "2022-07-12T05:09:39.057266+00:00"
dt_obj = parser.isoparse(time_str)
print(dt_obj)

二、计算与当前时间的差值

注意要保证时区统一,推荐用UTC时间计算,避免本地时区带来的偏差:

from datetime import datetime, timezone

# 转换目标时间
target_dt = datetime.fromisoformat("2022-07-12T05:09:39.057266+00:00")

# 获取当前UTC时间
current_utc_dt = datetime.now(timezone.utc)

# 计算时间差,得到timedelta对象
time_diff = current_utc_dt - target_dt

# 直接打印友好格式
print(f"时间差:{time_diff}")

# 提取具体时间单位
print(f"相差天数:{time_diff.days}")
print(f"当天内相差秒数:{time_diff.seconds}")
print(f"相差微秒数:{time_diff.microseconds}")

得到的time_diff是timedelta类型,你可以直接用它做后续的时间计算,比如给某个时间加上这个差值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 08:06:23