如何解决我无法从Linux上运行的应用程序获得正确的时间
我使用/etc/timezone
包含Etc/GMT
的Linux嵌入式系统。
如果我用hwclock -r
读取了硬件时钟,我会说13:00
。
如果用date
读取系统日期,我也会得到13:00
。
现在,如果我使用以下代码从C应用程序中读取日期:
time_t tv;
time(&tv);
localtime_r(&tv,&time_utc);
printf("%s\n",ctime(&tv));
printf("%d:%d\n",time_utc.tm_hour,time_utc.tm_min);
我得到了(不在乎日期):
... 15:00 ...
15:00
为什么?
现在,如果在应用程序内部,则使用以下代码将日期设置为13:00
:
const struct timeval tv = {mktime(&time_utc),0};
settimeofday(&tv,NULL);
然后我将使用前面提到的代码正确读取时间。
那么为什么初次阅读似乎只关心一些daylight saving time
而不是打电话给settimeofday(&tv,NULL)
之后呢?
我的配置中缺少什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。