如何计算[NSDate日期]?

时间:2011-09-15 20:13:12

标签: iphone ios4 nsdate

我正在使用Web服务器上的方案中的当前日期的一部分,我想在设备上生成与服务器上相同的值。从理论上讲,我想到了这两个值不相同且两端的值不匹配的情况。

然后让我思考 - 当应用程序运行时,具体[NSDate date]是如何计算的?

编辑:我想我真正要问的是, iPhone如何从权威来源获得时间?它似乎来自一个手机信号塔我会假设都以某种方式同步。这是真的吗?

编辑:看起来它使用了使用系统时钟的gettimeofday()。从Apple docs看,当你将iPhone设置为“自动设置”时,它会使用正确的时间通过蜂窝网络。

谢谢,

3 个答案:

答案 0 :(得分:3)

你可以通过逐步调试调试器或者只是为调用堆栈进行抽样来找到它。

它使用gettimeofday

因此,你不能指望这个值在两个设备上相等或完全同步。

答案 1 :(得分:1)

请注意,您的应用可以在iPod Touch上运行,也可以在没有3G连接的手机上运行。无论手机在顶栏上显示什么时间,都可以获得。

答案 2 :(得分:1)

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