我确定必须有更好的方法将像00:04:11.723
这样的字符串转换为这样的微秒:
ms = timestring.split('.')
pt = ms[0].split(':')
sec = int(pt[0]) * 3600 + int(pt[1]) * 60 + int(pt[2])
st = sec * 1000 + int(ms[1])
但是我却找不到它。
答案 0 :(得分:4)
这是仅使用datetime.timedelta
的一种方式:
from datetime import timedelta
x = '00:04:11.723'
h, m, s = map(float, x.split(':'))
res = timedelta(hours=h, minutes=m, seconds=s).total_seconds() * 1000
# 251723.0
答案 1 :(得分:2)
如果您不反对第三方库,pandas.Timedelta
可能对您有用:
import pandas as pd
pd.Timedelta(timestring).total_seconds()*1000
返回:251723.0
答案 2 :(得分:2)
from datetime import datetime
timezero = datetime.strptime('00:00:00.000', '%H:%M:%S.%f')
(datetime.strptime('00:04:11.723', '%H:%M:%S.%f') - timezero).total_seconds() * 1000
基本思想是使用strptime()
来解析字符串以获取datetime
对象。由于datetime
个对象在总秒数上没有很好的方法,但是timedelta
确实如此,我们会减去另一个datetime
,这会产生timedelta
我们&#39}。正在寻找。现在我们可以total_seconds()
。乘以1000得到答案(作为浮点数)。