我刚才有一个关于日期和时间如何在iOS和Objective-C中运行的快速问题。如果我在两个单独的设备上拨打NSDate *today = [NSDate date]
这样的电话,他们是否都会返回完全相同的时间?我试图让多个手机使用当前时间同步,我只是想确保它们将具有相同的当前时间(如果它是毫秒,我不担心,但超过一秒钟可能不会工作)。
提前致谢!
答案 0 :(得分:0)
由于NSDate
在内部将时间存储为NSTimeInterval
,因此typedef
为double
。它在该问题发布之日起十年或更长时间内具有亚微秒分辨率。
这意味着即使您的两个设备具有紧密同步的时钟,也不可能通过在两个设备上调用NSDate
来获得完全相同的[NSDate date]
。
你可以检查两个日期是否在一秒之内:
NSTimeInterval diff = date0.timeIntervalSinceReferenceDate - date1.timeIntervalSinceReferenceDate;
if (fabs(diff) < 1) {
// dates less than one second apart
}