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

如何用Python将含天数的时间格式'1 day, 01:00:00'转换为秒数

解决包含天数的时间字符串转秒数问题

哦,我懂你的困扰了!你当前的代码直接用:分割字符串,结果第一个元素是'1 day, 01'——这里混了天数的文本内容,自然没法直接转成整数,导致报错。咱们得先把天数部分单独剥离出来,再处理时分秒,这样就能把天数也纳入计算啦。

方案一:分步分割处理(直观易懂)

这种方法适合格式固定的场景(比如始终是X day, HH:MM:SS或X days, HH:MM:SS):

import datetime

time_1 = '1 day, 01:00:00'

# 第一步:把字符串拆成天数部分和时分秒部分
day_section, time_section = time_1.split(', ')

# 第二步:提取天数数字(不管是day还是days,split后第一个元素都是数字)
days = int(day_section.split()[0])

# 第三步:处理时分秒部分
hours, minutes, seconds = map(int, time_section.split(':'))

# 计算总秒数
total_seconds = datetime.timedelta(
    days=days,
    hours=hours,
    minutes=minutes,
    seconds=seconds
).total_seconds()

print(total_seconds)  # 输出:90000.0(1天1小时的总秒数)

方案二:正则表达式提取(更灵活)

如果你的时间字符串格式可能有小变动(比如天数部分是2 days或者空格位置不同),用正则提取所有数字会更省心:

import datetime
import re

time_1 = '1 day, 01:00:00'
# 提取字符串中所有的数字,按顺序对应天数、小时、分钟、秒
days, hours, minutes, seconds = map(int, re.findall(r'\d+', time_1))

total_seconds = datetime.timedelta(
    days=days,
    hours=hours,
    minutes=minutes,
    seconds=seconds
).total_seconds()

print(total_seconds)  # 同样输出:90000.0

这两种方法都能完美解决你的问题,既保留了天数的计算,又能正确转换时分秒。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:15:04