Ios 找出两个日期之间的差异总是打印10

Ios 找出两个日期之间的差异总是打印10,ios,objective-c,Ios,Objective C,以下是获取当前日期的代码 -(NSString *) getCurrentDate { NSDateFormatter *dateformater = [[NSDateFormatter alloc]init]; [dateformater setDateFormat:@"dd-MMM-yyyy"]; NSString *today=[dateformater stringFromDate:[NSDate date]]; return today; } 我使用以

以下是获取当前日期的代码

-(NSString *) getCurrentDate {
    NSDateFormatter *dateformater = [[NSDateFormatter alloc]init];
    [dateformater setDateFormat:@"dd-MMM-yyyy"];
    NSString *today=[dateformater stringFromDate:[NSDate date]];
    return today;
}
我使用以下代码查找当前日期和从pickerview中选择的日期之间的差异

  NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
  [dateFormat setDateFormat:@"dd-MMM-yyyy"];
  NSString *date = [dateFormat stringFromDate:picker.date];
  NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:GregorianCalendar];
  NSCalendarUnit unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth |  NSCalendarUnitDay;
  NSDateFormatter *f = [[NSDateFormatter alloc] init];
  [f setDateFormat:@"dd-MMM-yyyy"];
  NSDate *selectedDate = [f dateFromString:date];
  NSDate *currentDate = [f dateFromString:[self getCurrentDate]];
  NSDateComponents *currentDateComponent = [gregorianCalendar components:unitFlags fromDate:currentDate toDate:selectedDate options:0];
但是currentDateComponent.day始终打印值10


我的代码怎么了?我怎样才能找出两个日期之间的差异呢?

我认为您使用的组件是错误的,应该是错误的,但只有NSCalendarUnitDay 我的代码正在返回正确的difference.day

 NSCalendar *calendar = [NSCalendar currentCalendar];
 NSDateComponents *difference = [calendar components:NSCalendarUnitDay
                                                           fromDate:[NSDate date] toDate:enDate options:0];

请参阅,我已经尝试过了,因为这些代码可以简化为NSDateComponents*currentDateComponent=[[NSCalendar currentCalendar]components:NSCalendarUnitDay fromDate:[NSDate date]toDate:picker.date选项:0];