协议 NTP UDP 获取实时网络时间
1.使用串口调试工具 协议选择UDP,请求报文是十六进制0x1b开头47个0 总共四十八字节
1b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
返回时间
🔹 1. 报文数据
1C 02 00 E7 00 00 00 52 00 00 02 A1 0A 89 35 59 EC 84 C4 5D 75 64 F8 E4 00 00 00 00 00 00 00 00 EC 84 C4 66 76 E7 57 25 EC 84 C4 66 76 E7 B9 D0
这正好 48 字节,标准 NTP 响应包。
我们只关心 Transmit Timestamp(偏移 40–47 字节)。
🔹 2. 定位字段
Reference Timestamp (16–23):
EC 84 C4 5D 75 64 F8 E4
Originate Timestamp (24–31):
00 00 00 00 00 00 00 00
Receive Timestamp (32–39):
EC 84 C4 66 76 E7 57 25
Transmit Timestamp (40–47):
EC 84 C4 66 76 E7 B9 D0
✅ 我们要的就是它
🔹 3. 拆解 Transmit Timestamp
EC 84 C4 66 76 E7 B9 D0
秒字段(前 4 字节):
EC 84 C4 66
=0xEC84C466
= 3968124006小数字段(后 4 字节):
76 E7 B9 D0
=0x76E7B9D0
= 1992276688
🔹 4. 转换为 Unix 时间戳
NTP 时间起点 = 1900-01-01
Unix 时间起点 = 1970-01-01
偏移量 = 2208988800
秒
Unix 秒 = 3968124006 - 2208988800 = 1759135206 秒
换算成毫秒:
毫秒小数 = (1992276688 * 1000) / 4294967296 ≈ 464 ms Unix 毫秒 = 1759135206 * 1000 + 464 = 1759135206464 ms
🔹 5. 时间结果
UTC 时间:2025-09-29 08:40:06.464
北京时间 (UTC+8):2025-09-29 16:40:06.464
东京时间 (UTC+9):2025-09-29 17:40:06.464
✅ 这帧报文里的 Transmit Timestamp 对应北京时间:
2025 年 9 月 29 日 16:40:06.464