如何将时间格式转换为毫秒并返回Python?

fen*_*ent 4 python datetime

原因是因为我正在制作一个与ffmpeg一起使用的脚本,我需要能够以00:00:00 [.000]的格式添加/减去时间.

最后3位是可选的,它们的意思是毫秒.时间字符串可能看起来像以下任何一种

4:34.234
5.000
2:99:34
4:14
Run Code Online (Sandbox Code Playgroud)

如果许多数字不是可选的,这将更容易.但既然它们是,我想我必须使用某种正则表达式来解析它?

Sve*_*ach 12

从字符串到毫秒:

s = "4:34.234"
hours, minutes, seconds = (["0", "0"] + s.split(":"))[-3:]
hours = int(hours)
minutes = int(minutes)
seconds = float(seconds)
miliseconds = int(3600000 * hours + 60000 * minutes + 1000 * seconds)
Run Code Online (Sandbox Code Playgroud)

从milliseonds到string:

hours, milliseconds = divmod(miliseconds, 3600000)
minutes, milliseconds = divmod(miliseconds, 60000)
seconds = float(milliseconds) / 1000
s = "%i:%02i:%06.3f" % (hours, minutes, seconds)
Run Code Online (Sandbox Code Playgroud)

  • 第二行添加前导零以填充可能不存在的字段。 (2认同)