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



在一周的大部分时间里,我一直在试图找出如何在Python中做到这一点,但没有找到任何人来具体回答这个问题。我有一个日志文件,其中每一行都是一个事件的时间戳,例如:

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

我已经设法把所有这些放进了一个列表中,并想出了如何操作这个列表。我一直想不出如何将时间戳(从0开始(嗯,实际上是1秒,但大约是0))转换为毫秒(我可以在Excel中做这件事)。因此,每个时间戳只是表示经过的时间,而不是实际的时间点。结尾的七个x对我来说毫无意义,所以不确定它们是什么。

有人有我可以用来将时间戳转换为毫秒的代码片段吗?

七个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),因为strptime在微秒内只接受6个字符(足够合理)。如果它们是实际的x,只需在strptime的格式字符串末尾使用".xxxxxxxx",datetime就会很乐意为您丢弃它们。如果您想将差值中的秒、分钟和小时转换为毫秒,则必须直接处理时间对象元组。(有关日期时间和许多其他SO线程,请参阅文档)

可能,如果时间戳是datetime.datetime.now()格式的时间戳,那么您将从.微秒.获得它

Time=datetime.datetime.now()

打印时间.微秒

将为您提供更多的时间范围,达到微秒级别。

最新更新