任何晶振实际工作频率都是不稳定的,只是程度不同而已。即使温度补偿的晶振,在常温范围内(摄氏10℃~35℃)也有大约5×10-7~2×10-6的误差。晶振实际频率是受外界多种因素(温度、电压、老化等)影响而改变的。因此,时钟频率偏差系数k并非恒定不变的。每隔一定时间,NTP客户机要对时钟频率偏差系数k进行校正,才能保证计时精度。
假定局域网内NTP延时小于1ms,理论上授时误差小于0.5ms,但对于Windows操作系统内置的NTP客户和NTP服务,并不能达到此精度。Windows NTP时钟分辨率因操作系统和硬件不同而有所不同,时钟分辨率通常为10ms或15ms。基于Windows操作系统内置的NTP授时精度不超过10ms。
一般的计算机和嵌入式设备在时钟度方面没有明确的指标要求, 时钟精度只有10-4~10-5,每天可能误差达十几秒或更多,如果不及时校正,其累积时间误差不可忽视。许多工业控制过程需要高准确度时间,如:电力系统内众多的计算机监控系统、保护装置、故障录波器等时间同步要在ms级以内。
本程序能通过网络授时服务器获取当前时间,因为一般我们的手机只能提供到分钟的时间显示,并且由于手机硬件的固有问题导致经常会出现手机系统时间不准确问题,(已知的某平台的手机会在充电后时间变快4分钟),这是编写本程序的初衷,本程序功能够提供给使用者到秒级的时间显示,同时告诉使用者手机系统时间与当前标准时间的差值,但无权去修改使用者手机的系统时间,软件使用中会消耗非常少的网络流量。