我可以依靠iOS设备时钟正确吗?

Eva*_*rks 7 ios

我正在开发一个应用程序,它将通过我控制的服务器在用户之间同步数据.目前,我正在记录每个设备上的UTC更改时间,然后有助于确定哪些数据是最新的 - 服务器上或设备上的数据.

我可以依靠iPhone和iPad的UTC时间准确吗?如果没有,我还能如何标记更新仍然可以让我检测来自不同用户的更新并检测可能的更新冲突?

Dun*_*age 6

绝对不能依赖iOS设备时钟是正确的.用户可以将它们设置为他们喜欢的任何内容,而不必与时间服务器同步.

进行同步时,您可以通过获取设备的当前时间视图来开始此过程.如果这与服务器的当前时间视图不同,则可以将此偏移量应用于正在上载的更改的时间戳,以使其进入"服务器时间".显然,这假设设备时钟在更改期间没有改变 - 也就是说,它忽略了某些更改具有正确时间的可能性,并且有些需要应用偏移.

最安全的选择是跟踪此偏移量,并查看它是否会对同步冲突产生任何影响.在任何会产生差异的情况下,应用偏移量,但在任何不会影响最新数据的情况下,使用设备中未修改的时间戳 - 如果用户回忆它是"3: 00pm"当他们做某事时,他们仍然会在下午3点看到该事件的时间戳.如果使用任何偏移计算,请不要忘记确保不应该相对于服务器及时向前移动任何项目,直到将来声称它已经发生.:)


And*_*kov 4

出于您的目的,最好使用逻辑时钟,例如http://en.wikipedia.org/wiki/Lamport_timestamps