如何将timestamp_t转换为实际时间?

2024-04-16

我见过很多使用 time_t 的例子,但 timestamp_t 让我感到困惑...... 我正在做一个作业,我们需要打印出 GPS 数据,并且 GPS 设备返回一个类型 timestamp_t 来表示它的时间戳和纪元时间。我尝试过使用 gmtime() 进行转换和 strftime() 但对该类型没有任何作用。它一直告诉我,如果我尝试使用它们,它无法将 timestamp_t* 转换为 time_t。

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

thanks


这个网站在此输入链接描述 http://fossies.org/dox/gpsd-3.11/gps_8h_source.html表示它是带有小数部分的 unix 时间戳。假设这意味着小数点左边的数字是自 1970 年 1 月 1 日以来的秒数,并且“小数”部分是一秒的小数部分,您可以去掉整数部分并使用 ctime():

#include <time.h>

time_t seconds;
timestamp_t ts = 1415000462.999000;

seconds = (time_t) timestamp_t;

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

这当然忽略了秒的小数部分,但是 你应该能够轻松处理这个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将timestamp_t转换为实际时间? 的相关文章

随机推荐