保存并加载二进制文件中的提升::时间::steady_clock::time_point

Save and Load boost::chrono::steady_clock::time_point in binary file

本文关键字:时间 steady clock point time 加载 二进制文件 保存      更新时间:2023-10-16

>我需要保存一个类型为 boost::chrono::steady_clock::time_point 的变量 到文件中,然后从文件中检索它。时间格式并不重要,我希望将其保存为双精度。这可能吗?

您可以使用 time_point::time_since_epoch() 成员函数获取内部值以进行保存。您可以使用time_point(持续时间)构造函数加载时间。

稳定时钟将其持续时间定义为nanoseconds(此处)

这在使用至少 64 位作为其表示的情况下。

typedef duration<boost::int_least64_t, nano> nanoseconds; 

因此,您可以序列化持续时间的表示形式。您必须在反序列化时将其转换回时钟的时间点类型。

在元级别,当反序列化时,时间点不会"匹配"当前的稳定时钟源(因为它可能在重新启动后处于不同的进程中,即使在不同的机器上)。所以你可以考虑

  • 定义您自己的专用时钟(如:archive_clock)
  • 只是存储纳秒值,其中文档描述了它的相关性及其与挂钟时间等(不存在)的关系。