解析存储ms.us的datetime

nfzehxib  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(308)

我试图解析从导出的tsv文件中的测试设备(canbus logger)中存储的一些日志文件,不幸的是,它们将绝对时间存储在 HH:MM:SS.XXX.YYY 格式
其中单位为ms,yyy单位为µs,例如: 13:58.06.286.591 是这样吗 HH:MM:SS.XXXXXX 我可以使用标准datetime模块通过以下方式对其进行解析:

str2date = lambda x: datetime.strptime(x, '%H:%M:%S.%f')

并将其添加为列转换器converters={2:str2date}
如何最好地管理此日期格式?
编辑文件副本以删除“添加小数点-最不可取”选项
将lambda更改为完整函数,该函数将删除最后一个周期-可行
一些其他聪明的方法来增强字符串的效果

mmvthczy

mmvthczy1#

您可以编写一个简单的格式化程序,删除最右边的点,以便使用 %f .
前任:

formatter = lambda x: x[::-1].replace('.', '', 1)[::-1]

s = "13:58.06.286.591"

print(formatter(s))

# 13:58.06.286591

现在你可以像这样整合这个

from datetime import datetime

str2date = lambda x: datetime.strptime(formatter(x), '%H:%M.%S.%f')

print(str2date(s))

# 1900-01-01 13:58:06.286591

…或者一次完成所有工作,这取决于您需要多大的灵活性。

相关问题