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

时间:2011-04-03 17:34:49

标签: python datetime

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

最后3位数字是可选的,它们的意思是毫秒。时间字符串可能类似于以下任何内容

4:34.234
5.000
2:99:34
4:14

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

2 个答案:

答案 0 :(得分: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)

从毫秒到字符串:

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

答案 1 :(得分:-1)

from time import time

time_in_seconds = int(time())
time_in_miliseconds = int(time_in_seconds *1000)

您还可以使用str(x)将x转换为字符串。从那里你可以使用各种方法来创建你想要的字符串,例如:(这两个假设你已经有变量hrs,min,sec,msec和你想要的值)

str(hrs) + ':' + str(min) + ':' + str(sec) + '.' + str(msec)

或更热门:

'{hrs}:{min}:{sec}.{msec}'.format(hrs = str(hrs), min = str(min), sec = str(sec), msec = str(msec))

此外,如果要使用当前时间,可以在时间模块中使用strftime()函数。看看http://docs.python.org/library/time.html