工具/软件:
您好、
环境:SDK 版本 7
我正在将系统范围的时间设置为 UTC、下面的代码设置 NWP 和应用的 UTC 时间、但当应用的另一部分尝试读取当前时间时、它会返回 epoch time + 6 小时偏移。
问:我是否可以将时区设置为 UTC?
为什么 seconds_get () 返回具有 6 小时偏移的 epoch 时间?
SET_NWP TIME (time_t ts)
{
SlDateTime_t dt;
STRUCT TM;
INT 结果;
debug_console_Log (wifi、info、“NTP epoch time:%u“、ts);
Seconds_set (0);
debug_console_Log (wifi、info、“重置到 epoch 时间:%u“、seconds_get ());
/*将大纪元后的时间转换为 GM 时间*/
tm =*gmtime (ts);
/*在网络处理器上设置系统时钟以验证证书*/
DT.TM_DAY = TM.TM_mday;
/* TM.TM_mon 是自一月起的月份、因此添加 1 以获得实际月份*/
dt.TM_mon = TM.TM_mon + 1;
/* TM.TM_YEAR 是自 1900 年起的年份,所以加上 1900 得到实际年份*/
DT.TM_YEAR = TM.TM_YEAR + 1900;
DT.TM_HOUR = TM.TM_HOUR;
DT.TM_MIN = TM.TM_MIN;
DT.TM_sec = TM.TM_sec;
//设置 NWP 时间
结果= sl_DeviceSet (SL_DEVICE_General、SL_DEVICE_GENERAL_DATE_TIME、
sizeof (SlDateTime_t)、(unsigned char *)(&dt));
//设置应用时间
Seconds_set(UTC +(6*3600));//将 epoch 增加 6 小时以设置 ts 系统时间。
debug_console_Log (wifi、info、“在 epoch 时间之后:%u“、seconds_get ());
}
运行上述代码后:
NWP — 设置为 UTC 时间、但 Seconds_get = 1751057495
当前 UTC 时间:14:51、但时间:20:51
