为什么比较两个日期时间的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
没有这样的方法。