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

Python如何将秒.毫秒格式时间转换为hh:mm:ss,mmm标准格式

Python 秒级时间转SRT字幕格式的解决方法

问题根源

你现有代码的问题主要有3点:

  • 冗余逻辑:import time放在循环、函数内不合理,遍历json_data的循环没有实际作用,每次都会覆盖var的值
  • 格式匹配错误:time.strftime的%f占位符输出的是6位微秒,和SRT要求的3位毫秒不匹配
  • 分隔符错误:SRT时间要求时分秒和毫秒之间用逗号分隔,你用了点号

修正后的代码

import time
import json

# 提前读取JSON数据,不要放在转换函数内重复执行
with open('SubRip.srt','r',encoding='UTF-8') as f:
    json_data = json.load(f)

def ss2HMS(seconds_float):
    # 拆分整数秒和毫秒部分
    total_sec = int(seconds_float)
    ms = int((seconds_float % 1) * 1000)
    # 计算时分秒,手动计算避免超过24小时时gmtime出现天数进位问题
    hours = total_sec // 3600
    minutes = (total_sec % 3600) // 60
    sec = total_sec % 60
    # 按SRT要求格式化,不足两位/三位的自动补零
    return f"{hours:02d}:{minutes:02d}:{sec:02d},{ms:03d}"

使用示例

遍历JSON中的startTime字段转换:

for item in json_data:
    srt_start_time = ss2HMS(float(item['startTime']))
    # 后续处理字幕逻辑
    print(srt_start_time) # 输出示例:00:02:15,342

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:18:01