为什么if
比较两个日期时间的条件不起作用?如果需要NSDate
,我该如何转换它们?
代码:
if ([[NSDate date] dateStringFromFormat:@"dd/MM/yyyy HH:mm"] > [self.tfDatetime dateStringFromFormat:@"dd/MM/yyyy HH:mm"]) {
// Do ...something
}
为什么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;
}
要比较两个 NSDates(例如 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
是最新日期。
编辑:
否决票将无效,因为我正在NSDate
像这样比较 2 。
if ([[NSDate date] timeIntervalSinceDate:[NSDate date]])
{
// Do something
}
我没有收到任何错误。您正在比较 2 NSString
s,这将是一个问题,因为NSString
.