NSDateComponents of an NSDate

cfischer picture cfischer · Jun 25, 2011 · Viewed 24.5k times · Source

How do I get the NSDateComponents of a single NSDate? I don't want the components of the difference between 2 dates, just the seconds, minutes, hours, day, month and year of a NSDate?

Answer

martin clayton picture martin clayton · Jun 25, 2011

There's an example in the Apple docs, Listing 3: Getting a date’s components:

NSDate *today = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc]
                         initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *weekdayComponents =
                    [gregorian components:(NSDayCalendarUnit | 
                                           NSWeekdayCalendarUnit) fromDate:today];
NSInteger day = [weekdayComponents day];
NSInteger weekday = [weekdayComponents weekday];

Note that you have to 'or' together the calendar units you want in the call of the components method.