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

如何在Python中将timedelta字符串转回timedelta对象?

解析timedelta字符串转回timedelta对象的方法

Python标准库的datetime模块并没有提供直接解析timedelta字符串输出的内置方法——毕竟timedelta的字符串表示是一种人性化输出,没有对应的逆解析函数。不过你可以通过手动解析字符串来实现需求,以下是具体方案:

手动解析实现

针对你给出的几种字符串格式(纯时分秒、带单/复数days的格式),可以写一个简单的解析函数:

from datetime import timedelta

def parse_timedelta(delta_str):
    days = 0
    # 处理包含天数的情况
    if 'day' in delta_str:
        days_part, time_part = delta_str.split(', ', 1)
        days = int(days_part.split()[0])
        delta_str = time_part
    
    # 解析时分秒
    h, m, s = map(int, delta_str.split(':'))
    return timedelta(days=days, hours=h, minutes=m, seconds=s)

测试示例

# 测试不同格式的字符串
print(parse_timedelta("12:21:00"))          # 输出: 12:21:00
print(parse_timedelta("1 day, 0:53:00"))    # 输出: 1 day, 0:53:00
print(parse_timedelta("2 days, 9:28:00"))   # 输出: 2 days, 9:28:00

补充:第三方库方案

如果你能使用第三方库,可以用python-dateutil的parser模块,它能自动识别这类时间差字符串:

from dateutil import parser
from datetime import timedelta

delta = parser.parse("1 day, 0:53:00") - parser.parse("00:00:00")
print(isinstance(delta, timedelta))  # 输出: True

不过要注意python-dateutil不属于标准库,需要先通过pip install python-dateutil安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 17:29:57