什么是NTP
NTP:Network Time Protocol(网络时间协议)
▶️ NTP 是用于同步网络中计算机时间的协议。它的用途是把计算机的时钟同步到世界协调时UTC。
UTC:Universal Time Coordinated(协调世界时)以原子时秒长为基础。
GMT:Universal Time(世界时)以地球自转为基础。
北京时间采用东八区的区时作为标准时间。北京时间比世界时(UTC)早8小时,北京时间=UTC+8。
通过 SNTP 开始时间同步,只需调用以下三个函数:
sntp_setoperatingmode(SNTP_OPMODE_POLL);
sntp_setservername(0, "pool.ntp.org");
sntp_init();
添加此初始化代码后,应用程序将定期同步时间。时间同步周期由 CONFIG_LWIP_SNTP_UPDATE_DELAY 设置(默认为一小时)。如需修改,请在项目配置中设置 CONFIG_LWIP_SNTP_UPDATE_DELAY。
ESP32 可以参考:https://github.com/espressif/esp-idf/blob/master/examples/protocols/sntp/main/sntp_example_main.c
获取本地时间,函数同样定义在 time.c 中,但是使用此函数需要 tm 类型的结构体存储时间!
tm 是定义在 C++ 库 time.h 中的结构体。