如何将timestamp_t转换为实时?

时间:2014-11-03 06:44:21

标签: c++ c gps raspberry-pi gpsd

我见过很多使用time_t的例子,但是timestamp_t令我感到困惑...... 我做了一个我们需要打印GPS数据的任务,gps设备返回一个类型timestamp_t作为其时间戳和一个纪元时间。香港专业教育学院尝试使用gmtime()转换和strftime(),但没有任何东西在这种类型上工作。它一直告诉我,如果我尝试使用它们,它无法将timestamp_t *转换为time_t。

任何人都知道任何可以将timestamp_t转换为人类可读时间的函数吗?

感谢

1 个答案:

答案 0 :(得分:2)

此网站enter link description here表示它是带小数部分的unix时间戳。假设这意味着小数点左边的数字是自1970年1月1日以来的秒数和“十进制”数字。 component是一秒的小数部分,你可以去掉整数组件并使用ctime():

time_t seconds;
timestamp_t ts = 1415000462.999000;

seconds = (time_t) timestamp_t;

printf("Time: %s\n", ctime(&seconds));

这当然忽略了秒的一小部分,但是 你应该能够轻松应对。