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

Python中如何计算两个Datetime列的差值?求解格式匹配报错

解决Datetime差值计算的格式匹配报错问题

报错原因

你的时间字符串是'2022-07-31 23:58:30+00:00',但使用的格式串'%Y-%m-%d %H:%M:%S.%fz'存在两个问题:

  • 字符串中没有毫秒部分(.%f对应毫秒,比如.123),格式串多余了.%f
  • 时区偏移+00:00需要用%z匹配,而不是%fz

解决方法1:修正strptime格式串

直接去掉格式串中的.%f,并将%fz改为%z,即可正确解析:

from datetime import datetime

t1 = datetime.strptime('2022-07-31 23:58:30+00:00', '%Y-%m-%d %H:%M:%S%z')
print('planned_event_time:', t1.time())

t2 = datetime.strptime('2022-07-31 23:58:30+00:00', '%Y-%m-%d %H:%M:%S%z')
print('actual_event_time:', t2.time())

# 计算时间差
delta = t2 - t1
print(f"时间差: {delta}")

解决方法2:使用fromisoformat(Python 3.7+)

如果你的Python版本在3.7及以上,推荐直接用fromisoformat解析ISO标准格式的时间字符串,无需手动编写格式串,更简洁可靠:

from datetime import datetime

t1 = datetime.fromisoformat('2022-07-31 23:58:30+00:00')
print('planned_event_time:', t1.time())

t2 = datetime.fromisoformat('2022-07-31 23:58:30+00:00')
print('actual_event_time:', t2.time())

delta = t2 - t1
print(f"时间差: {delta}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:50:22