我正在比较两个名为serverDate
和localDate
的NSDates。尽管两个日期的输出时间相同,但我仍然认为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"
,它输出以下内容:Server date: 2014-09-17 23:20:02:5090000000-0700, local date: 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");
}
希望这能帮助
这将帮助您,它适用于我的
if ([serverDate isEqualToDate: localDate])
{
NSLog(@"Date are same");
}else
{
NSLog(@"Date are not equal")
}