2010-12-06 1 views
5

Попытка выяснить модуль datetime и нужна помощь.Каким будет код python для добавления времени к определенной метке времени?

У меня есть строка, которая выглядит следующим образом:

00:03:12,200 --> 00:03:14,316 

(т.е. часы: минуты: секунды, миллисекунды) и нужно добавить, скажем, через 10 секунд на каждую метку времени. Чтобы иметь в качестве выхода:

00:03:22,200 --> 00:03:24,316 

Для чего нужен код python?

ответ

5

Для разбора времени, использование strptime

>>> x = '00:03:12,200 --> 00:03:14,316' 
>>> x1 = x.split('-->') 
>>> x1 
['00:03:12,200 ', ' 00:03:14,316'] 
>>> t1 = datetime.datetime.strptime(x1[0], '%H:%M:%S,%f ') 
>>> t1 
datetime.datetime(1900, 1, 1, 0, 3, 12, 200000) 

использование timedelta

>>> t = datetime.timedelta(seconds=1) 
>>> t 
datetime.timedelta(0, 1) 
>>> 
>>> t1 + t 
datetime.datetime(1900, 1, 1, 0, 3, 13, 200000) 
>>> k = t1 + t 

реконвертировать натянуть

>>> k.strftime('%H:%M:%S,%f ') 
'00:03:13,200000 ' 
+0

Вопрос заключается в том, чтобы преобразовать «00: 03: 12,200 "в объект времени. Я получаю ошибки для t = datetime.strptime ("00: 02: 59,840", "% HH:% MM:% SS, mmm"). Говорит: ValueError: данные времени '00: 02: 59,840 'не соответствуют формату'% HH:% MM:% SS, mmm ' – user63503 2010-12-06 04:05:36

+0

t = datetime.strptime ("00:02:59", "% HH:% MM :% SS% mmm ") или"% HH:% MM:% SS%, mmm "или"% HH:% MM:% SS,% mmm "- все дают ошибки. У меня есть запятая после секунд, которые не знают, как представлять в строке формата. – user63503 2010-12-06 04:13:46

4

Чтобы добавить 10 секунд, вы можете использовать это:

datetime.datetime.now() + datetime.timedelta(seconds=10) 

Чтобы разобрать выше, вы можете использовать strptime:

datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M") 

Посмотрите здесь для более подробной информации: