比较日期时间

时间:2013-02-20 05:28:03

标签: objective-c xcode

为什么if条件,比较两个日期时间,不起作用? 如果他们需要NSDate,我该如何转换它们?

代码:

if ([[NSDate date] dateStringFromFormat:@"dd/MM/yyyy HH:mm"] > [self.tfDatetime dateStringFromFormat:@"dd/MM/yyyy HH:mm"]) {
    // Do ...something
}

3 个答案:

答案 0 :(得分:3)

为此定义了一种方法。尝试以下代码来比较两个日期:)

switch ([[[NSDate date] dateStringFromFormat:@"dd/MM/yyyy HH:mm"] compare [self.tfDatetime dateStringFromFormat:@"dd/MM/yyyy HH:mm"]]){
    case NSOrderedAscending:
         NSLog(@"NSOrderedAscending");
    break;
    case NSOrderedSame:
         NSLog(@"NSOrderedSame");
    break;
    case NSOrderedDescending:
         NSLog(@"NSOrderedDescending");
    break;
}

答案 1 :(得分:2)

要比较两个NSDates(例如,dateOne和dateTwo),请使用此

switch ([dateOne compare:dateTwo]){
     case NSOrderedAscending:
          NSLog(@"NSOrderedAscending");
    break;
    case NSOrderedSame:
          NSLog(@"NSOrderedSame");
    break;
    case NSOrderedDescending:
         NSLog(@"NSOrderedDescending");
    break;
}

答案 2 :(得分:1)

比较日期的另一种方法是检查这两个日期之间的间隔,if ([date1 timeIntervalSinceDate:date2] > 0)date1是最新日期。

修改

向下投票无效,因为我正在比较2 NSDate这样的。

if ([[NSDate date] timeIntervalSinceDate:[NSDate date]])
{
    // Do something
}

我没有收到任何错误。您正在比较2 NSString这将是一个问题,因为NSString没有这种方法。