0

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

代码:

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

3 回答 3

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;
}
于 2013-02-20T05:32:58.153 回答
2

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

switch ([dateOne compare:dateTwo]){
     case NSOrderedAscending:
          NSLog(@"NSOrderedAscending");
    break;
    case NSOrderedSame:
          NSLog(@"NSOrderedSame");
    break;
    case NSOrderedDescending:
         NSLog(@"NSOrderedDescending");
    break;
}
于 2013-02-20T05:29:03.457 回答
1

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

编辑:

否决票将无效,因为我正在NSDate像这样比较 2 。

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

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

于 2013-02-20T05:36:01.187 回答