【发布时间】:2018-09-02 06:40:09
【问题描述】:
我在 gps_data 结构中从 GPS 设备获取时间戳作为双精度。
我想将此 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);
}
幸运的是,我发现 Howard Hinnant's date and timezone library(针对 C++20 提出的)似乎提供了这种确切的功能。不幸的是,至少从我所见,date/tz/chrono 库没有允许这种简单用法的便捷方法。
我必须首先以某种方式将我的替身“转移”到已知的计时/日期类型。但是好的,因为我理解了整体概念,即 timepoint 被定义为 duration 之后(或之前)时钟的epoch,我认为这是一个漂亮的模型。
假设
我应该能够非常轻松地翻译该模型以适应我的问题,对吧?
在我的例子中,我有一个时间戳,它是一个时间点,指定为自 gps 纪元以来的持续时间。现在,应该有一个类类型的时钟为我抽象和处理所有这些,我想。是的!有一个 date::gps_clock 和一个 date::gps_time,它们肯定可以完成这项工作。
问题
我无法让它为我工作。我确信解决方案是微不足道的。
问题
谁能帮我一把,说明我应该如何使用 Howard 的日期库来解决我的问题?
【问题讨论】:
-
您可以附上到目前为止您尝试过的内容吗?
-
您的
double代表什么单位?自纪元以来的秒数? -
是的,对不起,自纪元以来的秒数。