为什么if
条件,比较两个日期时间,不起作用?
如果他们需要NSDate
,我该如何转换它们?
代码:
if ([[NSDate date] dateStringFromFormat:@"dd/MM/yyyy HH:mm"] > [self.tfDatetime dateStringFromFormat:@"dd/MM/yyyy HH:mm"]) {
// Do ...something
}
答案 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
没有这种方法。