[NSDate日期]是如何计算的



我在web服务器上的方案中使用当前日期的一部分,我想在设备上生成与服务器上相同的值。理论上,我考虑过这样一种情况:这两个值不相同,两端的值也不匹配。

这让我想到-如何,具体[NSDate date]计算时,应用程序正在运行?

编辑:我想我真正想问的是, iPhone是如何从权威来源获得时间的?它似乎来自一个蜂窝塔,我认为它们都是同步的。这是真的吗?

Edit:看起来它使用了gettimeofday(),它使用了系统时钟。从苹果文档来看,当你将iPhone设置为"自动设置"时,它会通过蜂窝网络使用正确的时间。

谢谢,

您可以通过在调试器中逐步执行或简单地对调用栈进行采样来找到它。

它使用gettimeofday

因此,您不能期望该值在两个设备上相等或完全同步。

请记住,您的应用程序可能在iPod Touch上运行,或者在没有3G连接的手机上运行。你可以得到手机在顶部栏显示的时间

UNIX系统时钟,使用(如其他人所说)gettimeofday()。手机可能与NTP服务器同步,如time.apple.com -这是桌面OS X所做的。

最新更新