Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone [NSDate]是如何计算的?_Iphone_Ios4_Nsdate - Fatal编程技术网

Iphone [NSDate]是如何计算的?

Iphone [NSDate]是如何计算的?,iphone,ios4,nsdate,Iphone,Ios4,Nsdate,我正在web服务器上的方案中使用当前日期的一部分,我希望在设备上生成与服务器上相同的值。理论上,我考虑过这样一种情况:这两个值不相同,两端的值也不匹配 这让我思考——具体来说,当应用程序运行时,[NSDate]是如何计算的 编辑:我想我真正想问的是,iPhone是如何从权威来源获得时间的?它似乎来自一个手机发射塔,我认为它是以某种方式同步的。这是真的吗 Edit:看起来它使用了使用系统时钟的gettimeofday()。从现在开始,看起来当你将iPhone设置为“自动设置”时,它会在手机网络上使

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

这让我思考——具体来说,当应用程序运行时,
[NSDate]
是如何计算的

编辑:我想我真正想问的是,iPhone是如何从权威来源获得时间的?它似乎来自一个手机发射塔,我认为它是以某种方式同步的。这是真的吗

Edit:看起来它使用了使用系统时钟的gettimeofday()。从现在开始,看起来当你将iPhone设置为“自动设置”时,它会在手机网络上使用正确的时间


谢谢,

您可以通过在调试器中单步执行或简单地为调用堆栈采样来找到答案

它使用
gettimeofday


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

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

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

你的意思是什么,它是如何计算的?它根据设备时钟返回当前日期。不,没有理由期望这将精确地等于服务器提供的时间。我想我正在寻找的是设备时钟。设备时钟是如何设置的?他问“新纪元的开始是什么?”确保服务器和设备具有相同时间的唯一方法是将时间数据从服务器发送到设备。当用户或系统从最近的手机发射塔(如果在手机/3g ipad上)询问当前时间时,时钟由用户或系统设置。它也可能是由itunes同步设置的,但我不确定。这个问题很好,我也很好奇。例如,如果我将Mac设置为从网络自动获取时间,将iPhone设置为从“自动设置”方法自动获取时间,我会得到不同的时间,有时相隔两分钟(!)。