Я знаю о NSDateComponents
, но дело в том, что какой-то недельный механизм испортит результат, когда дата стоит в начале или в конце года.
Например:
NSCalendar *calendar = [NSCalendar currentCalendar];
NSCalendarUnit calendarUnit = NSYearCalendarUnit;
NSDateComponents *dateComponents = [calendar components:calendarUnit fromDate:self.date];
(lldb) po self.date
2015-12-31 16:00:00 +0000
(lldb) po dateComponents
<NSDateComponents: 0x12f4c83f0>
Calendar Year: 2016
Изменение minimumDaysInFirstWeek
также не имеет большого значения, и NSDateFormatter
не кажется лучшим способом.