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

如何将timedelta生成的HH:MM:SS格式字符串转换为秒级int值

实现方案

方法1:拆分字符串逐段计算(最通用)

直接将HH:MM:SS格式的字符串按冒号拆分,分别转换为整数后按小时乘3600、分钟乘60、秒乘1的规则累加即可,无额外依赖,适配所有合法的timedelta输出格式:

def hhmmss_to_seconds(time_str: str) -> int:
    h, m, s = map(int, time_str.split(':'))
    return h * 3600 + m * 60 + s

# 测试你的示例输入
print(hhmmss_to_seconds("22:00:01")) # 输出 79201
  • 优点:逻辑简单、运行效率高,即使小时数超过24(比如100:02:30这种长时间跨度的timedelta输出)也能正常解析
  • 适配场景:仅处理HH:MM:SS格式的字符串,无天数字段的情况

补充:如果你的输入可能包含超过1天的timedelta输出(格式为X days, HH:MM:SS),可以用改造后的版本:

def timedelta_str_to_seconds(time_str: str) -> int:
    total = 0
    if 'day' in time_str:
        day_seg, time_seg = time_str.split(', ')
        total += int(day_seg.split()[0]) * 86400
    else:
        time_seg = time_str
    h, m, s = map(int, time_seg.split(':'))
    return total + h * 3600 + m * 60 + s

方法2:使用datetime库解析(适合已引入datetime的项目)

如果项目中已经用到datetime相关工具,也可以通过strptime解析后计算:

from datetime import datetime

def hhmmss_to_seconds(time_str: str) -> int:
    dt = datetime.strptime(time_str, "%H:%M:%S")
    return dt.hour * 3600 + dt.minute * 60 + dt.second
  • 注意:该方法仅支持小时数小于24的输入,超过24小时会抛出解析错误,不适合处理大跨度的timedelta输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:57:05