了解NSDate是今天,昨天,明天

mrr*_*nsi 15 iphone nsdate ios

使用iOS SDK,我需要找到一种简单安全的方法来查看NSDate是今天,昨天,明天.我正在寻找的是伪代码中的这样的东西:

NSDate *myDate = someDate;
if ([myDate isTomorrow]) {
    NSLog("Tomorrow"); 
}
Run Code Online (Sandbox Code Playgroud)

你会如何解决它?

Mar*_*ark 38

我知道这已经很老了,但我想把答案更新(因为我没有看到其他人发布更新的答案).

从iOS 8.0开始,您可以使用许多函数进行日期比较:

  • compareDate:TODATE:toUnitGranularity:
  • 而isDate:equalToDate:toUnitGranularity:
  • 而isDate:inSameDayAsDate:
  • isDateInToday:
  • isDateInTomorrow:
  • isDateInWeekend:
  • isDateInYesterday:

见下面的例子:

NSDate *today = [NSDate new];
NSCalendar* calendar = [NSCalendar currentCalendar];

BOOL isToday = [calendar isDateInToday:today];
BOOL isYesterday = [calendar isDateInYesterday:today];
Run Code Online (Sandbox Code Playgroud)

是今天会是的.

因为我们今天给了它,所以昨天将是NO.

有关详细信息,请参阅Apple的文档.


run*_*mad 33

查看我们的Erica Sadun的优秀NSDate extension课程:http://github.com/erica/NSDate-Extensions

有很多日期比较,其中正是你需要的:)

  • Erica的代码*正是我正在搜索的内容,也是NSDate的一个很棒的实用程序类别.强烈推荐. (2认同)