由于iOS客户端可以自动设置日期和时间,导致开发无法正确获取到标准时间,而标准时间可以通过服务器得到,那么怎么能时时得到服务器的正确时间呢?
当我们打开APP时请求后台的时间校准接口,在后端返回当前的服务器时间
的同时,端上记录当前设备系统已运行的时长
;当再需要使用服务器时间
时,只需重新获取一次设备系统已运行的时长
减去上一次的设备系统已运行时长
加上服务器返回时间
即可。
获取设备系统已运行的时长
的方法
[[NSProcessInfo processInfo] systemUptime]
具体请求服务器时间校准接口的实现,按各自的接口实现,后续仅需做简单的加减法记录,就不再做详细记录了。
此方案的误差间隔为:一个接口的响应时长,谨慎使用。