Сохраняется ли где-нибудь в NSLocale начальный день недели?

Я живу в Голландии. Нам, голландцам, нравится видеть понедельник началом недели. Я знаю, что люди в США любят считать воскресенье началом недели. Глупые американцы;)

Если я хочу представить своим глобальным пользователям недельный обзор, могу ли я получить предпочтительный начальный день недели из NSLocale, или панель настроек - это единственный способ?

Ура, EP.


person epologee    schedule 30.05.2011    source источник


Ответы (2)


Используйте следующий код:

NSCalendar *calendar = [[NSLocale currentLocale] objectForKey:NSLocaleCalendar];
NSUInteger firstDay = [calendar firstWeekday];

Вы также можете проверить этот соответствующий вопрос.

person Anton    schedule 30.05.2011
comment
На самом деле ссылка, которую вы предоставили перед редактированием, была именно тем, что я искал, хотя я сказал «день», когда имел в виду «свидание». Не хочешь поставить и это туда? Спасибо! - person epologee; 31.05.2011
comment
@epologee Извините, но что вы имеете в виду под первым свиданием недели? Вам нужно вычислить дату первого дня недели? - person Anton; 31.05.2011
comment
Вы дважды дали правильный ответ, за что вы получите положительный голос рядом со знаком ответа: D Я хочу знать точное NSDate, с которого начинается неделя в моем регионе. Это ответ (хотя и не проверенный) в другом вопросе. Код, который вы даете выше, дает числовой индекс начального дня недели, что на самом деле является более адекватным ответом на то, как я написал свой вопрос, хотя я искал что-то другое. Нашел, спасибо! - person epologee; 31.05.2011
comment
@ Антон Я думаю, это ошибка. Согласно ссылке, в документации Apple [[NSLocale currentLocale] objectForKey:NSLocaleCalendar]; возвращает NSCalendar не идентификатор календаря. - person Apan; 26.08.2014

Принятый ответ на самом деле неверен. Вот правильный код:

NSCalendar *calendar = [[NSLocale currentLocale] objectForKey:NSLocaleCalendar];
self.weekStartsOnDay = [calendar firstWeekday];

Проблема в том, что объект, на который ссылается NSLocaleCalendar, на самом деле является календарем.

person Denis Hennessy    schedule 21.05.2015
comment
Ответ был правильным, но код был неправильным. @Apan уже заметил это в 2014 году, но до сих пор я не видел комментария. Я отредактировал исходный ответ, метод firstWeekDay был тем методом, о котором просили. - person epologee; 22.05.2015