Objective-c – How to compare dates in Objective-C


I have two dates: how do I compare which one is greater date in Objective-C?

Best Solution

From NSDate class reference:

NSDate -compare: Returns an NSComparisonResult value that indicates the temporal ordering of the receiver and another given date.

  • (NSComparisonResult)compare:(NSDate *)anotherDate

Parameters anotherDate The date with which to compare the receiver.

This value must not be nil. If the value is nil, the behavior is undefined and may change in future versions of Mac OS X.

Return Value If:

The receiver and anotherDate are exactly equal to each other, NSOrderedSame

The receiver is later in time than anotherDate, NSOrderedDescending

The receiver is earlier in time than anotherDate, NSOrderedAscending.

Discussion This method detects sub-second differences between dates. If you want to compare dates with a less fine granularity, use timeIntervalSinceDate: to compare the two dates.