Учитывая NSDate
, как я могу найти первый день недели этой даты, учитывая локаль пользователя. Например, я слышал, что некоторые страны рассматривают понедельник как первый день недели, а другие используют воскресенье. Мне нужно вернуть предыдущий понедельник в первом случае, но в предыдущее воскресенье в последнем случае.Поиск локально-зависимого первого дня недели
Мои лучшие усилия до сих пор всегда возвращает предыдущее воскресенье, независимо от настроек устройства применяются:
NSCalendar *calendar = [NSCalendar currentCalendar];
[calendar setLocale:[NSLocale currentLocale]];
NSDateComponents *components = [calendar components:NSYearForWeekOfYearCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSWeekCalendarUnit | NSWeekdayCalendarUnit fromDate:originalDate];
[components setWeekday:1];
NSDate *firstDayOfWeek = [calendar dateFromComponents:components];
Бонус вопрос: на IOS, которые устанавливающих диски это? Это «Формат региона»?
Также см http://stackoverflow.com/questions/16876813/cocoa-get-first-day-in-week?rq=1, который решает ту же проблему. – rmaddy