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

如何在Python中为格式化时间字符串添加指定时长

如何在Python中给格式化的时间字符串添加指定时长?

你遇到的报错核心原因很简单:你直接把字符串类型的时间和timedelta对象做加法了,Python没办法直接对字符串和时间增量进行运算——必须先把时间字符串转换成datetime对象,完成运算后再转成你需要的字符串格式才行。

我给你整理了两种可行的实现方案,适配不同的Python版本:

方法1:使用strptime解析(兼容绝大多数Python版本)

这种方法对Python版本要求低,不管是旧版还是新版都能用:

from datetime import datetime, timedelta

# 原始时间字符串
timestemp_Original = '2021-07-13T00:15:00Z'

# 1. 将字符串解析为datetime对象
dt_original = datetime.strptime(timestemp_Original, '%Y-%m-%dT%H:%M:%SZ')
# 2. 添加指定时长(这里是15分钟)
dt_added = dt_original + timedelta(minutes=15)
# 3. 转换回你需要的字符串格式
timestemp_Added = dt_added.strftime('%Y-%m-%dT%H:%M:%SZ')

print(timestemp_Added)  # 输出:2021-07-13T00:30:00Z

这里的%Y-%m-%dT%H:%M:%SZ是和你的时间字符串完全匹配的格式符,各个部分对应:

  • %Y:4位数的年份
  • %m:2位数的月份
  • %d:2位数的日期
  • %H:24小时制的小时数
  • %M:分钟数
  • %S:秒数
  • 最后的Z直接匹配字符串结尾的UTC标识

方法2:使用fromisoformat(Python 3.7+更简洁)

从Python 3.7开始,datetime提供了fromisoformat方法来快速解析ISO 8601格式的时间字符串,不过注意:

  • Python 3.11及以上版本可以直接解析带Z的字符串
  • 3.10及以下版本需要先把Z替换成+00:00(因为Z代表UTC+0时区)

代码示例:

from datetime import datetime, timedelta

timestemp_Original = '2021-07-13T00:15:00Z'

# 适配低版本Python:替换Z为+00:00
dt_original = datetime.fromisoformat(timestemp_Original.replace('Z', '+00:00'))
# 添加时长
dt_added = dt_original + timedelta(hours=0, minutes=15)
# 转换回带Z的字符串格式
timestemp_Added = dt_added.isoformat().replace('+00:00', 'Z')

print(timestemp_Added)  # 输出:2021-07-13T00:30:00Z

总结一下:所有操作的核心都是先转成datetime对象再做时间运算,字符串只是时间的展示形式,不能直接参与时间增量的计算哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 21:52:29