将字符串格式00:00:00,000转换为毫秒-python

时间:2019-03-09 16:46:51

标签: python datetime time

我想要将字符串音频时间戳转换为毫秒。

样本字符串 00:00:16,260 00:00:26,339 00:19:38,769

4 个答案:

答案 0 :(得分:2)

假设您要从字符串中获取总计毫秒数。

from datetime import datetime, timedelta

audio_timestamp = '00:00:16,260'
(datetime.strptime(audio_timestamp+'000', '%H:%M:%S,%f') - datetime.strptime('00', '%H')).total_seconds()*1000

给予16260

答案 1 :(得分:1)

您可以拆分字符串,将其转换为整数并分配给变量:

def timestamp_to_milliseconds(timestamp):
    hours, minutes, seconds, milliseconds = [int(x) for x in timestamp.replace(',', ':').split(':')]
    return milliseconds + 1000 * (seconds + 60 * (minutes + 60 * hours))

这是一个例子:

timestamp_to_milliseconds('00:19:38,769')
# 1178769
timestamp_to_milliseconds('00:00:16,260')
# 16260

答案 2 :(得分:0)

我不确定您是否需要它,但这是我学到的解决方案:


timestamp = "00:00:16,260".split(":")

seconds= float(timestamp[2].replace(',', "."))
minutes = int(timestamp[1])
hours = int(timestamp[0])

milliseconds= seconds*1000 + minutes*60*1000 + hours*3600*1000

答案 3 :(得分:0)

如果您确定所有值都正确地用零填充,那么您可以按照以下方式简单地使用索引

t = "00:00:26,339"
h,m,s,ms = map(int,[t[:2],t[3:5],t[6:8],(t[9:]+"000")[:3]])
tms = h*60*60*1000+m*60*1000+s*1000+ms
print(tms) # prints 26339

请记住,此解决方案假定t的格式正确。 编辑:改进为还接受00:00:00形式的字符串

相关问题