Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Generate NSDate from day, month, and year

I'm trying to generate a NSDate from a month day and year (all in integer format).

Right now my attempt is such:

NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *components = [[NSDateComponents alloc] init]; NSNumber *day = [dataSource valueForKey:@"day"]; NSNumber *month = [dataSource valueForKey:@"month"]; NSNumber *year = [dataSource valueForKey:@"year"]; [components setDay:[day intValue]]; [components setMonth:[month intValue]]; [components setMonth:[year intValue]]; NSDate *_date = [calendar dateFromComponents:components]; 

However, _date outputs the following when day = 24, month = 8, year = 2011:

0168-07-25 04:56:02 +0000

I must be doing something horribly wrong, but I have no idea what. Anyone know what might be going on?

like image 835
minimalpop Avatar asked Oct 05 '11 16:10

minimalpop


2 Answers

You have a typo in your code: (last line should be setYear:)

 [components setDay:[day intValue]];  [components setMonth:[month intValue]];  [components setYear:[year intValue]]; 
like image 195
Christopher A Avatar answered Sep 21 '22 18:09

Christopher A


One glaring glitch is:

[components setMonth:[year intValue]];    //setting month with year! 
like image 39
wmorrison365 Avatar answered Sep 21 '22 18:09

wmorrison365