检查一个NSDate是否大于另一个

if (datStartDate > datEndDate) { 

这似乎并不奏效。 我知道有一个isEqual等,但我该如何执行“是大于”?

有两个NSDate

我知道的最简单的方法是:

 if( [firstDate timeIntervalSinceDate:secondDate] > 0 ) { 

其他答案涵盖比较:想添加一些风味;)。

比较date使用-compare:方法:

返回值如果:

  • 接收者和另一个date完全相等, NSOrderedSame
  • 接收者晚于其他date, NSOrderedDescending
  • 接收者比另一个时间更早, NSOrderedAscending

关于什么…

 if ([datStartDate earlierDate: datEndDate] == datStartDate) { // datStartDate is earlier } else { // datEndDate is earlier } 

正如你有NSDates :

 NSDate *datStartDate = [NSDate dateWithString:@"2010-10-01 03:00:00 +0900"]; NSDate *datEndDate = [NSDate dateWithString:@"2010-10-01 04:00:00 +0900"]; if ( ([datStartDate compare:datEndDate]) == NSOrderedDescending ) { ... } 

Swift 2版本接受的答案:

 if firstDate.timeIntervalSinceDate(secondDate) > 0 { // firstDate is greater (further in the future) than secondDate }