0

I want to compare the todays date and other date coming from my database. For example, 2011-03-25 compare it with 2011-02-25

How can i formate my database date as the NSDateFormatter require NSDdate datatype ?

Devang
  • 11,258
  • 13
  • 62
  • 100
  • 1
    From the looks of your question, your date coming from the database looks like they stored as strings. If so and they will always in the format of yyyy-MM-dd, you can use the -isEqualToString forever with no problem. But if you they are NSDate object see the answer from @Jhaliya. – Black Frog Mar 25 '11 at 07:08

6 Answers6

3

Cocoa has couple of methods for this:

in NSDate

– isEqualToDate:
– earlierDate:
– laterDate:
– compare:

When you use - (NSComparisonResult)compare:(NSDate *)anotherDate ,you get back one of these:

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.

for more read the SO post

Just go through the blog post, there are many date related utility functions.

http://arstechnica.com/apple/guides/2010/03/how-to-real-world-dates-with-the-iphone-sdk.ars/2

Community
  • 1
  • 1
Jhaliya - Praveen Sharma
  • 31,697
  • 9
  • 72
  • 76
1
NSDate *date1 = [NSDate date];
NSDate *date2 = [NSDate date];

if ([date1 compare: date2]==NSOrderedAscending) {
    NSLog(@"YES");
}
Angelo
  • 533
  • 5
  • 18
0

In Swift:

let date1 = NSDate() //some date
let date2 = NSDate() //another date

let firstDate = date1.earlierDate(date2)
let lastDate = date1.laterDate(date2)
raf
  • 2,569
  • 20
  • 19
0

If your date are string like year-month-day, you can just compare string:

 if ([date1 compare:string2]==NSOrderedAscending) {
 } else if ([date1 compare:string2]== NSOrderedDescending) {
 } else {
 }

It will works because fields in date are from most important to less, like a string comparison.

Benoît
  • 7,395
  • 2
  • 25
  • 30
0

You can use NSDate compare: or timeIntervalSinceReferenceDate -- that'll get you started

jnpdx
  • 45,847
  • 6
  • 64
  • 94