从午夜到日期时间的秒数

use*_*137 5 c++ qt datetime utc

我将雷达数据称为"轨道",轨道数据显示自上一个午夜以来的UTC秒数.这不是自1970年1月1日以来的秒数.

现在我想将它转换为日期时间,因为知道计算机上的时钟可能与雷达上的时钟略微不同步.我假设雷达的秒数是参考,而不是计算机的.我想将这些秒转换为完整的日期时间.午夜时分,事情似乎有点棘手.

有什么建议?我有一些想法,但我不想错过任何东西.

我正在使用C++ Qt.

cou*_*nt0 0

如果您可以链接到另一个库,我建议使用boost::date_time

看来您想从午夜(纪元)开始以秒为单位获取当前日期,然后将雷达时间添加到其中,然后将总和转换回日期时间,并将其转换为字符串。

使用 boost 将帮助您:

  • 获取正确的当地时间
  • 计算日期
  • 将漂移纳入计算中
  • 考虑闰秒

因为您将拥有时间间隔和持续时间等概念供您使用。您可以使用类似的东西(来自 boost 示例):

ptime t4(date(2002,May,31), hours(20)); //4 hours b/f midnight NY time
ptime t5 = us_eastern::local_to_utc(t4);
std::cout << to_simple_string(t4) << " in New York is " 
          << to_simple_string(t5) << " UTC time "
          << std::endl;
Run Code Online (Sandbox Code Playgroud)

如果您想手动计算漂移,您可以轻松地进行时间数学计算,类似于这样的结构:

 ptime t2 = t1 - hours(5)- minutes(4)- seconds(2)- millisec(1);
Run Code Online (Sandbox Code Playgroud)