我从 GPS 设备的 gps_data 结构中获取一个双精度时间戳。
我想将此 GPS 时间戳转换为 UTC 和 TAI 时间,简单如下:
void handle_gps_timestamp(double timestamp)
{
double utc = utc_from_gps(timestamp);
double tai = tai_from_gps(timestamp);
do_stuff(gps, utc, tai);
}
Run Code Online (Sandbox Code Playgroud)
幸运的是,我发现Howard Hinnant 的日期和时区库(建议用于 C++20)似乎提供了这个确切的功能。不幸的是,至少从我所见,date/tz/chrono 库没有允许这种简单用法的方便方法。
我必须首先以某种方式将我的双重“转移”为已知的计时/日期类型。但是好吧,因为我理解了整体概念,即时间点被定义为一个时钟纪元之后(或之前)的持续时间,我认为这是一个漂亮的模型。
假设
我应该能够很容易地转换该模型以适应我的问题,对吗?
就我而言,我有一个时间戳,它是一个时间点,指定为自 gps 纪元以来的持续时间。现在,应该有一个类类型的时钟来为我抽象和处理所有这些,我想。是的!有一个 date::gps_clock 和一个 date::gps_time,它们肯定可以完成这项工作。
问题
我不能让它为我工作。我确定解决方案很简单。
题
有人可以帮助我,展示我应该如何使用适用于我的问题的霍华德日期库吗?