您好!
我在我的软件中使用的是 Lwip 堆栈 、在我的项目中使用了集成的 SNTP 和.h 文件。
我已经调试了软件、发现每当控制到达下一行的断点时
静态空
SNTP 过程(u32_t *接收_时间戳)
{
/*将 SNTP 时间(基于1900)转换为 UNIX GMT 时间(基于1970)
*@TODO:如果 MSB 为1、则 SNTP 时间基于2036!
*
time_t =(ntohl (receive_timestamp[0])- DIFF_SEC_1900_1970);
}
我们在"t"实例中得到秒值。 例如 t = 1518585734
我的问题是、如何将 UNIX 时间转换为 UTC 时间(YY:MM:DATE:HR:min:SEC)。 是否有现成的功能可用?
我是否应使用以下代码?
静态空
SNTP 过程(u32_t *接收_时间戳)
{
/*将 SNTP 时间(基于1900)转换为 UNIX GMT 时间(基于1970)
*@TODO:如果 MSB 为1、则 SNTP 时间基于2036!
*
time_t timenow =(ntohl (receive_timestamp[0])- diff_SEC_1900_1970);
//格式化时间,"ddd yyyy-mm-dd hh:mm:ss zzz"
struct tm ts;
char buf[80];
TS =*本地时间(&timenow);
strfttime (buf、sizeof (buf)、"%a %Y-%m-%d %H:%M:%S %Z"、&ts);
}
请提供建议。