Если вы хотите получить разницу дат в годах, то вы должны использовать метод: calendar: fromDate: toDate:
А если вы хотите получить только год от даты, то вы должны использовать этоmethod: calendar: fromDate:
.
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/MM/yyyy hh:mm:ss"];
NSDate *today = [NSDate date];
NSString *birthDate = @"04/06/1984 01:45:20";
NSDate *startDate = [formatter dateFromString:birthDate];
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
//NSDateComponents *components = [gregorianCalendar components:NSCalendarUnitYear fromDate:startDate toDate:today options:0]; //Option 1
NSDateComponents *components = [gregorianCalendar components:NSCalendarUnitYear fromDate:startDate]; // Option 2
NSInteger year = [components year];
NSLog(@"Years : %ld", year);
Если вы используете метод из варианта 1, он напечатает Years : 35
.
А если вы используете метод из варианта 2, то он дастYears : 1984
.