Irf*_*fan 1 c linux posix timespec
有人可以建议我如何使用Linux检索时间吗
结构时间表
类型?自从Epoch以来,这只是给我时间。我可以使用此数据类型获取实际的Linux时间吗?
简介:我正在嵌入式设备上编写记录器实用程序,其时间戳分辨率为毫秒/微秒。源添加时间戳,目标组件将使用该时间戳。
struct stLogItem logitem; //stLogItem has a member, struct timespec ts
clock_gettime(clk_id, &logitem.ts);
Run Code Online (Sandbox Code Playgroud)
目标组件正在文件/控制台上打印此日志时间戳。但是打印的日期是从Epoch开始的时间,而不是实际的Linux日期。
打印的数据是:1970-01-01 23:30:07.586864475
而Linux日期不同,如下所示:
root @ imh:#日期
UTC 2017年11月14日星期二11:34:12
它不是格式问题。这是关于获取当前Linux时间(以纳秒为单位)的信息。
调用后clock_gettime,ts.tv_sec类型time_t为的会被填充自该时期以来的秒数的时间戳。您可以将其直接传递给localtime:
struct timespec ts;
clock_gettime(clk_id, &ts);
struct tm *my_tm = localtime(&ts.tv_sec);
Run Code Online (Sandbox Code Playgroud)
现在my_tm指向struct tm的时间已细分为年/月/日/小时/分钟/秒,并ts.tv_nsec具有纳秒部分。