对于iOS SDK,我需要找到一个简单而安全的方法来查看NSDate是否是今天,昨天,明天。我正在寻找的东西是这样的伪代码:找出NSDate是否是今天,昨天,明天
NSDate *myDate = someDate;
if ([myDate isTomorrow]) {
NSLog("Tomorrow");
}
你会如何解决它?
对于iOS SDK,我需要找到一个简单而安全的方法来查看NSDate是否是今天,昨天,明天。我正在寻找的东西是这样的伪代码:找出NSDate是否是今天,昨天,明天
NSDate *myDate = someDate;
if ([myDate isTomorrow]) {
NSLog("Tomorrow");
}
你会如何解决它?
检查我们的埃里卡Sadun的伟大NSDate
extension
类:http://github.com/erica/NSDate-Extensions
有很多的日期比较,其中有你需要的东西:)
与播放后找到了这一点,它似乎有一些问题,例如与夏令时也dateBysubstractingDays不工作。这是一个很好的延伸,但并不总是那么安全。 – mrrmatinsi 2010-11-26 14:40:02
对于那些将阅读评论:项目已经更新了好几次,所以不用担心,一切都应该正常工作。 – Nekto 2012-10-30 03:44:45
埃里卡的代码*正是*我正在寻找和NSDate伟大的实用工具类别。强烈推荐。 – 2013-01-21 16:08:13
我明白,这是很老,但我想带答案是最新的(因为我没有看到其他人发布了更新的答案)。
由于iOS的8.0你有一堆的,你可以使用日期比较功能:
参见下例:
NSDate *today = [NSDate new];
NSCalendar* calendar = [NSCalendar currentCalendar];
BOOL isToday = [calendar isDateInToday:today];
BOOL isYesterday = [calendar isDateInYesterday:today];
isToday将是YES。
isYesterday将没有,因为我们给它今天的日期。
请参阅Apple's Documentation进一步阅读。
斯威夫特3
let isToday = Calendar.current.isDateInToday(yourDate)
然后,您可以检查该值,并用简单的进行相应处理:
if isToday {
//If true, do this
}
也有类似的功能,为了明天,周末,和其他几个人,例如:
let isTomorrow = Calendar.current.isDateInTomorrow(yourDate)
This guide它们都在Objective-C和Swift中:
的可能重复[比较NSDate的当天或前一天(http://stackoverflow.com/questions/2893835/compare-nsdate-for-today-or-yesterday) – 2010-10-29 14:08:32