我已经为此苦苦挣扎了好几个小时。我试图找出两个日期之间的不同月份。开始日期与系统日期正确,但 endDate 始终显示相同的日期,2014-01-04 00:00:00
无论用户输入什么。(并且 valuetosave 是用户输入的日期,我将其保存在 userdefaults 中,如果我在日志中看到它是正确的,例如字符串是31/12/2014
)。所以目前我总是得到 7 个月的事件用户选择的日期,例如 2014 年 12 月 31 日。
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/MM/YYYY"];
NSDate *endDate = [formatter dateFromString:valuetosave];
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
unsigned int unitFlags = NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *comps = [gregorian components:unitFlags fromDate:startDate toDate:endDate options:0];
float months = [comps month]+1;