преобразовать строку миллисекунды в дату и время в Python - PullRequest
0 голосов
/ 18 марта 2010

Я новичок в Python. Я хочу вычесть интервал времени из моего файла журнала, но проблема в том, что я не могу преобразовать миллисекундную строку файла журнала в формат даты и времени. Например, у меня 15: 55: 05.12345, и я хочу удалить 5.12345 секунд из этой строки и показать результат 15.55.00.00000 в Python. Как я могу это сделать? В настоящее время я использую Python 2.5.

Заранее спасибо.

Извините, я имел в виду, что я хочу вычесть значение, например, удалить 00: 00: 05.1000, поэтому я должен получить 15:55:00:02345

Ответы [ 2 ]

1 голос
/ 18 марта 2010
>>> import datetime
>>> s = '15:55:05.12345'
>>> datetime.datetime.strptime(s.rpartition('.')[0], '%H:%M:%S').strftime('%H.%M.00.00000')
'15.55.00.00000'

редактировать после уточнения :
это невозможно сделать с помощью стандартной библиотеки Python, работая только со строками:

>>> s[:6]+ '00' + s[-6:]
'15:55:00.12345'
0 голосов
/ 18 марта 2010

Я вижу, что вам нужно вычесть значение, поэтому я бы использовал объекты timedelta, потому что с ними можно делать математику.

>>> value = '15:55:05.123450'
>>> m = re.match('(\d+):(\d+):(\d+\.\d+)', value)
>>> hour = int(m.group(1))
>>> min = int(m.group(2))
>>> sec = float(m.group(3))
>>> now = datetime.timedelta(hours=hour,minutes=min,seconds=sec)
>>> str(now)
'15:55:05.123450'
>>>
>>> delta = datetime.timedelta(seconds=5.1)
>>>
>>> earlier = (now - delta)
>>> str(earlier)
'15:55:00.023450'
>>>
...