Это сработало для меня, но я не дал слишком много информации о том, является ли это лучшим решением:
NSDate* dateA; // alloc and init
NSDate* dateB; // alloc and init
NSCalendar *sysCalendar = [NSCalendar currentCalendar];
unsigned int unitFlags = NSSecondCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSDayCalendarUnit;
NSDateComponents *difference= [sysCalendar components:unitFlags fromDate: dateA toDate:dateB options:0];
double hour = [difference hour];
double minute = [difference minute];
double second = [difference second];
Моя цель здесь состояла в том, чтобы игнорировать что-либо выше часа.Вот почему я установил флаг NSDayCalendarUnit.Если вы установите NSMonthCalendarUnit-flag (?), Он должен предоставить вам всего месяцы, а не только месяц dateA - месяц dateB.
Редактировать: я получил это из другого потока, но не смог выяснитьчто, так что спасибо, кто бы ни предоставил мне этот кусок кода:)