在格里高利历的第53周,WeekOfYear溢出到1?

时间:2014-07-23 14:47:29

标签: ios cocoa-touch nscalendar

我的问题非常清楚。今年,2014年12月28日至31日降至2014年的第53周。 出于某种原因,当我从日期中提取组件时,NSCalendar生成了错误的值。 为什么?我错过了什么吗?

NSDateComponents *mockTodayComponents = [[NSDateComponents alloc] init];
mockTodayComponents.day = 27;
mockTodayComponents.month = 12;
mockTodayComponents.year = 2014;

NSDate *mockToday  = [[NSCalendar currentCalendar] dateFromComponents:mockTodayComponents];

/**************************/

NSDateComponents *weekOfYearComponents = [[NSCalendar currentCalendar] components:NSCalendarUnitWeekOfYear | NSCalendarUnitYear
                                                               fromDate:mockToday];

我明白了

<NSDateComponents: 0xae7aba0>
    Calendar Year: 2014
    Week of Year: 1

打印日历给我

(lldb) po calendar.timeZone
Europe/London (GMT+1) offset 3600 (Daylight)

(lldb) po calendar.calendarIdentifier
gregorian

0 个答案:

没有答案