NSDateComponenets提供错误的年份值

时间:2017-10-06 10:34:12

标签: uikit nsdate nscalendar nsdatecomponents nslocale

我使用一些代码按月将日期列表转换为不同的部分:

- (NSString *) calculateSectionPeriod{
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *components = [calendar components:(NSCalendarUnitYear | NSCalendarUnitMonth) fromDate: [self userDate]];
    NSString *tmp = [NSString stringWithFormat:@"%ld", ([components year] * 1000) + [components month]];
    NSLog(@"Section period = %@", tmp);
    return tmp;
}

userDate是从NSDatePicker设置的。

在大多数情况下,这会打印出像" 2015006" (2015年6月)或" 2017011" (2017年11月)。但是,在某些情况下,对于我的应用程序的某些用户,它最终会打印" 15003" (最终导致Core Data出现一些问题)。这是来自他们自己的报告,我还没有能够在我自己的设备上重现这个问题,但我很清楚问题出在这个代码上。

'年'组件将打印' 15'而不是' 2015'?是按地区还是某些语言设置?我尝试过设置不同的地区和语言,但我自己无法重现这个问题。

0 个答案:

没有答案