Я хотел бы получить NSString с даты, с форматом даты, как это:NSDateFormatter: неделя года и первый день недели
MMEEEY ww
Проблема заключается в «WW», недели года. Мне нужно сравнить этот формат с другим, взятым из backoffice. Но первый будний день backoffice - понедельник, тогда как iOS - воскресенье. Итак, когда в воскресенье, строка не такая, потому что неделя года не то же самое.
Вопрос: Как заставить NSDateFormatter использовать понедельник как первый рабочий день?
Я попытался установить свойство календаря NSDateFormatter с календарем с свойством firstWeekday, равным 2, но он не работает.
Суть этого:
NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
calendar.firstWeekday = 2;
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.calendar = calendar;
Edit: тест после ответа Ноа в
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
NSLocale * locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en"];
dateFormatter.locale = locale;
dateFormatter.dateFormat = @"MMEEEY ww";
NSDate * date = [NSDate dateWithTimeIntervalSince1970:1330251642]; // next sunday
NSLog(@"%@ -> %@", date, [dateFormatter stringFromDate:date]);
NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
calendar.firstWeekday = 2;
dateFormatter.calendar = calendar;
NSLog(@"%@ -> %@", date, [dateFormatter stringFromDate:date]);
Результат:
2012-02-24 11:31:27.878 Test[2546:15203] 2012-02-26 10:20:42 +0000 -> 02Sun2012 09
2012-02-24 11:31:27.880 Test[2546:15203] 2012-02-26 10:20:42 +0000 -> 02Sun2012 09
Спасибо за ваш ответ. Я пытался сделать то же самое, но для меня это все еще не работает ... Не понимаю, почему ... В любом случае мы решили не использовать номер недели в формате даты. Странный вопрос. – syfonseq