【发布时间】:2017-11-10 20:05:53
【问题描述】:
我正在开展一个项目,我们正在从各种传感器收集数据并记录各种日志。
大多数传感器都使用TimeGetTime 以毫秒为单位记录,这是从 PC 启动时间开始测量的时间。但是我有一个传感器,它的数据记录在纪元时间,以毫秒为单位。
如果我必须将所有传感器数据同步在一起,现在如何将纪元时间与TimeGetTime 关联起来?
【问题讨论】:
我正在开展一个项目,我们正在从各种传感器收集数据并记录各种日志。
大多数传感器都使用TimeGetTime 以毫秒为单位记录,这是从 PC 启动时间开始测量的时间。但是我有一个传感器,它的数据记录在纪元时间,以毫秒为单位。
如果我必须将所有传感器数据同步在一起,现在如何将纪元时间与TimeGetTime 关联起来?
【问题讨论】:
将纪元时间(我假设它是自 [Wikipedia]: Unix time 或 ([MAN]: time)* 1000 以来经过的毫秒数 (ms))转换为 ms 的一种方法Win 启动后已过去,您必须:
由于上一步检索到的时间是(根据[MSDN]: FILETIME structure):
一个 64 位值,表示自 1601 年 1 月 1 日 (UTC) 以来的 100 纳秒间隔数。
您需要将其转换为 Ux 纪元样式时间。转换算法非常简单,网上有很多例子,这里有一个:[SO]: Convert Windows Filetime to second in Unix/Linux(因为结果以秒为单位,你需要将它乘以 1000)。这表示从 Ux 纪元时间到现在所经过的 ms 数
【讨论】: