通过sntp同步系统时间
小型物联网设备,很少有接口提供给用户进行数据交互,那么我们设备的系统时间只能够通过获取网络时间后,再更新到本地。那么,就少不了使用sntp协议。
ntp协议:NTP(Network Time Protocol)网络时间协议基于UDP,用于网络时间同步的协议,使网络中的计算机时钟同步到UTC(通用协调时,可以理解为0时区的时间,领先东八区8个小时),再配合各个时区的偏移调整就能实现精准同步对时功能。
sntp协议:简单网络时间协议(Simple Network Time Protocol),由 NTP 改编而来,主要用来同步因特网中的计算机时钟。在 RFC2030 中定义。主要运用于小型的设备,占用内存小。
注意:NTP时间戳从1900年开始记秒数,而UNIX时间戳从1970年开始记秒数
一.常用时间函数介绍
首先介绍time.h中的常用api;
1.time();
函数原型:time_t time(time_t *t)
介绍:C 库函数 time_t time(time_t *seconds) 返回自纪元 Epoch(1970-01-01 00:00:00 UTC)起经过的时间,以秒为单位。如果 seconds 不为空,则返回值也存储在变量 seconds 中。
返回值:1970-01-01 00:00:00 起至今经过的时间,单位秒
2.ctime()
函数原型:char *ctime(const time_t *timer)
介绍:C 库函数 char *ctime(const time_t *timer) 返回一个表示当地时间的字符串,当地时间是基于参数 timer。
返回的字符串格式如下: Www(星期) Mmm (月)dd(日) hh:mm:ss(时分秒) yyyy(年)
返回值:是基于参数 timer计算,1970-01-01 00:00:00 经过timer时间后的时间字符串