How to determine if an NSDate is today?

cocoa-touch, ios, nscalendar, nsdate, objective-c

Solution

In macOS 10.9+ & iOS 8+, there's a method on NSCalendar/Calendar that does exactly this!

- (BOOL)isDateInToday:(NSDate *)date 

So you'd simply do

Objective-C:

BOOL today = [[NSCalendar currentCalendar] isDateInToday:date];

Swift 3:

let today = Calendar.current.isDateInToday(date)

Problem

How to check if an `NSDate` belongs to today? I used to check it using first 10 characters from `[aDate description]`. `[[aDate description] substringToIndex:10]` returns string like `"YYYY-MM-DD"` so I compared the string with the string returned by `[[[NSDate date] description] substringToIndex:10]`. Is there more fast and/or neat way to check? Thanks.

Original source

Related problems