将毫秒字符串转换为Python中的日期时间
我刚开始学习Python,想从我的日志文件中减去一段时间,但我遇到的问题是,无法把日志文件中的毫秒字符串转换成日期时间格式。比如,我有一个时间是15:55:05.12345,我想从这个时间中减去5.12345秒,最后的结果应该是15:55:00.00000。请问我该怎么做?目前我使用的是Python 2.5。
谢谢大家的帮助。
抱歉,我的意思是我想减去一个具体的值,比如减去00:00:05.1000,这样我应该得到15:55:00:02345
。
2 个回答
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'
>>>
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'
>>> s[:6]+ '00' + s[-6:]
'15:55:00.12345'
编辑后补充说明:
使用Python的标准库是无法做到这一点的,只能直接处理字符串。