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

标签 c++ c gps raspberry-pi gpsd

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

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

谢谢

最佳答案

此网站enter link description here表示它是带有小数部分的 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));

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

关于c++ - 如何将timestamp_t转换为实际时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26709107/

相关文章:

c++ - 将本地 std::vector 分配给 C++ 中的引用

为我的结构的 char 成员赋值时出现 C 段错误

Android 模拟器替换 GPS 位置

c++ - 如何使用 MAPI 从个人资料中获取电子邮件地址

c++ - 对象指针数组的动态分配

c++ - 将 VirtualProtect EAT Hook 例程从 C 转换为 Delphi 的 Delphi 问题

c - 丢弃标准输入流缓冲区中的无关字符

c - 如何将 Libev io 与 mqueue 一起使用

android - 如果屏幕关闭,为什么 GPS 在某些设备上不起作用?

java - Android 手机上的 GPS 定位器错误