器件型号:SIMPLELINK-CC3220-SDK
工具/软件:TI C/C++编译器
您好!
我很难尝试设置时区和/或从 SNTP 获取 UTC 读数的时间(并按此进行存储)。 我认为 gmtime()和 localtime()返回错误的读数。 我确实使用了 SNTP getTime(),使用 clock_settime (clock_realtime)设置系统时间,然后检查 gmtime()和 localtime(),如果不接触任何内容,则使用 strftime (localtime (time (NULL)))和 strftime (gmtime (time (NULL))))打印时会得到值;
-在本地时间显示 UTC
-显示未来 gmtimate()中的值减6小时
写入_tz (这是设置时区的正确方法吗?) 似乎影响 localtime()(如预期)和打印时区(否则为"cSt ")。 将_tz.timezone 设置为0将使 locatime()和 gmtime()匹配,但结果为 off (未来为6小时)。 我使用以下命令设置检索时间并进行打印:
uint64_t ntpts; int rval = SNTP getTime (NULL、0、NULL、ntpts); 如果(rval = 0){ // 1900到1970的秒偏移为2208988800
// floor (1e9/2**32)=15258 to scale 无符号小数=((ntpts &((1ul << 32)- 1))* 15258ull)>> 16; struct timespec ts ={ .tv_sec =(ntpts >> 32)- 2208988800ul、 .tv_nsec =小数 }; Clock_settime (clock_realtime、&ts); } char buf[64]; time_t = time (NULL); /*可以是-1、应检查*/ //没有任何分割的第二个区域,并且无法打印该区域? strfttime (buf、sizeof (buf)、"%Y-%m-%dT%H:%M:%S %Z"、gmtime (&t)); PUT (buf); strfttime (buf、sizeof (buf)、"%y-%m-%dT%H:%M:%S %Z"、localtime (&t)); PUT (buf);
是否有办法正确设置时区(我可以在 UTC 的所有工作中使用!) BTW、对于 TLS 套接字、我是否需要将网络处理器的时间设置为(sl_DeviceSet)、以及应该在那里使用什么时间(gmtime/localtime /某些特定时区?)