преобразовать формат строки 00: 00: 00,000 в миллисекунды - python [закрыт]

//Step1 - Using string funClass to convert to class
String funClass = "package.myclass";
Class c = Class.forName(funClass);

//Step2 - instantiate an object of the class abov
Object o = c.newInstance();
//Prepare array of the arguments that your function accepts, lets say only one string here
Class[] paramTypes = new Class[1];
paramTypes[0]=String.class;
String methodName = "mymethod";
//Instantiate an object of type method that returns you method name
 Method m = c.getDeclaredMethod(methodName, paramTypes);
//invoke method with actual params
m.invoke(o, "testparam");
-4
задан Ameer Hamza 9 March 2019 в 16:50
поделиться

4 ответа

при условии, что вам нужно общее количество миллисекунд от строки.

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

0
ответ дан Christian Sloper 9 March 2019 в 16:50
поделиться

Вы можете разбить строку, преобразовать в целые числа и присвоить переменным:

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
0
ответ дан Eric Duminil 9 March 2019 в 16:50
поделиться

Я не уверен, что вам это нужно, но вот решение из того, что я узнал:


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

0
ответ дан Younes 9 March 2019 в 16:50
поделиться

Если вы уверены, что все значения заполнены нулями, тогда вы можете просто использовать индексирование следующим образом

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

0
ответ дан Daweo 9 March 2019 в 16:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: