在python中将毫秒的字符串转换为datetime

时间:2010-03-18 14:59:24

标签: python datetime python-2.5

我是Python的新手。我想从我的日志文件中减去间隔时间,但问题是我无法将毫秒字符串的日志文件转换为日期时间格式。例如,我有15:55:05.12345,我想从此字符串中删除5.12345秒,并在Python中显示15.55.00.00000的结果。我怎样才能做到这一点?目前,我使用的是python 2.5。

提前谢谢。

抱歉,我的意思是我想减去价值,例如,删除00:00:05.1000所以,我应该得到15:55:00:02345

2 个答案:

答案 0 :(得分:1)

>>> 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'

答案 1 :(得分:0)

我看到你需要从值中减去,所以我会使用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'
>>>