如何将一列时间戳HH:MM:SS.xxxxxxx转换为毫秒?

时间:2016-07-18 08:44:15

标签: python timestamp

我一直在试图弄清楚如何在Python中完成这一周的大部分工作,但是找不到任何人专门回答这个问题。我有一个日志文件,其中每一行都是一个带有事件的时间戳,如下所示:

HH:MM:SS.xxxxxxx   \t    Event
HH:MM:SS.xxxxxxx   \t    Event
HH:MM:SS.xxxxxxx   \t    Event
...

我已设法将所有这些放入列表中,并想出如何操作该列表。我无法弄清楚的是如何将时间戳(从0开始(好,一秒钟,真的,但大致为0))转换为毫秒(我可以在Excel中执行的操作)。所以每个时间戳只代表经过的时间,而不是实际的时间。最后的七个x对我来说毫无意义,所以不确定它们是什么。

是否有人可以使用代码片段将此时间戳转换为毫秒?

2 个答案:

答案 0 :(得分:1)

七个x的七个实际x或者它们是几秒的格式表示吗? 如果输入数据的准确性只有几秒钟,我就无法看到如何计算差异到毫秒。

我建议你阅读python中的时间处理文档(日期时间等)

我拼凑了以下内容:

>>> from datetime import datetime, timedelta

设置2个时间字符串 - 希望像那些'你有。

>>> times1="12:45:31.123456"
>>> times2="12:45:31.654321"

使用datetime.strptime将它们转换为时间对象

>>> timet1 = datetime.strptime(times1,"%H:%M:%S.%f")
>>> timet2 = datetime.strptime(times2,"%H:%M:%S.%f")

减去它们以获得时间差值

>>> t_delta = timet2 - timet1
>>> str(t_delta)       
'0:00:00.530865'

注意:我必须省略时间字符串中的第7位数字(假设它们不是x' s)因为strptime只接受6个字符的微秒(足够明显)。如果他们是实际的x只是使用' .xxxxxxx'在strptime和datetime的格式字符串的末尾将很乐意为你抛弃它们。 如果要将差异中的秒,分和小时转换为毫秒,则必须直接处理时间对象元组。 (请参阅datetime和许多其他SO线程的文档)

答案 1 :(得分:0)

可能,如果时间戳是datetime.datetime.now()格式化的,那么你可以从.microsecond获得它。

时间= datetime.datetime.now()

打印Time.microsecond

会给你更多的时间范围,到微秒级别。