Как определить день, месяц и год как int в iOS


Я хочу определить день, месяц и год текущей даты в iOS. Я нашел это после поиска в сети:

NSDate *date = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [calendar components:(NSDayCalendarUnit) fromDate:date];
NSInteger Day = [components day];
NSInteger month = [components month];
NSInteger year = [components year];

Этот код показывает день правильно, но год и месяц не показывают, как это должно быть. Он показывает некоторые цифры, такие как 2147483647. Я не смог найти решение, поэтому, пожалуйста, помогите мне исправить код, который я нашел, или написать новый код, который делает то, что мне нужно.

1 6

1 ответ:

Эта строка является проблемой:

NSDateComponents *components = [calendar components:(NSDayCalendarUnit) fromDate:date];

Это должно быть

NSDateComponents *components = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:date];