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

时间:2014-09-18 06:40:27

标签: ios nsdate

我正在比较两个名为serverDatelocalDate的NSD。尽管两个日期输出都是同一时间,但我仍然认为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仍被视为最近的约会。

我做错了什么?感谢您的投入。

2 个答案:

答案 0 :(得分:2)

您不应该使用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");
}

希望这有帮助

答案 1 :(得分:1)

这将有助于你为我工作

if ([serverDate isEqualToDate: localDate])
    {
        NSLog(@"Date are same");
    }else
{
 NSLog(@"Date are not equal")
}