我正在比较两个名为 serverDate
和 localDate
的 NSDate。尽管两个日期输出是同一时间,但我继续得到 serverDate
显示为比 localDate
更新。
这是我的比较代码:
if ([serverDate timeIntervalSinceReferenceDate] > [localDate timeIntervalSinceReferenceDate]) {
NSLog(@"server date more recent");
} else if ([serverDate timeIntervalSinceReferenceDate] <= [localDate timeIntervalSinceReferenceDate]){
NSLog(@"local date more recent");
}
我使用了非常精确的 NSDateFormatter
将日期显示为 "yyyy-MM-dd HH:mm:ss:SSSSSSSSSSZ"
,输出如下:服务器日期:2014-09-17 23:20:02:5090000000-0700,本地日期:2014-09-17 23:20:02:5090000000-0700
。但即便如此,serverDate
仍被视为最近的日期。
我做错了什么?感谢您的输入。
最佳答案
你不应该使用 NSimeIntervell
因为 NSDate
有 Compare
比较日期的函数,而是使用 compare
函数
if ([serverDate compare:localDate ] == NSOrderedDescending) {
NSLog(@"serverDate is later than localDate");
} else if ([serverDate compare:localDate] == NSOrderedAscending) {
NSLog(@"serverDate is earlier than localDate");
} else {
NSLog(@"dates are the same");
}
希望对你有帮助
关于ios - 比较两个相同的 NSDates 返回不平等的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25905885/