问题描述
我使用/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 (将#修改为@)