目标c-比较日期时间



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

代码:

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

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

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;
}

要比较两个NSDate(比如dateOne和dateTwo),请使用以下

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

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

我这样比较2个NSDate

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

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

最新更新