Я хотел бы получить NSString из даты с таким форматом даты:
MMEEEY ww
Проблема в 'ww', неделе года. Я должен сравнить этот формат с другим, взятым из бэк-офиса. Но первый рабочий день backoffice - понедельник, а iOS - воскресенье. Поэтому, когда наступает воскресенье, строка не совпадает, потому что неделя года не совпадает.
Вопрос:
Как заставить NSDateFormatter использовать понедельник в качестве первого дня недели?
Я попытался установить свойство календаря NSDateFormatter с календарем со свойством firstWeekday, равным 2, но оно не работает.
Суть этого:
NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
calendar.firstWeekday = 2;
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.calendar = calendar;
Редактировать : тест после ответа Ноа
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