两个相同的NSDates的比较返回不相等的结果



我正在比较两个名为serverDatelocalDate的NSDates。尽管两个日期的输出时间相同,但我仍然认为serverDatelocalDate更近。

这是我的比较代码:

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")
}

最新更新