Как получить день недели в виде строки?
110
Как получить день недели в виде строки?
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"EEEE"];
NSLog(@"%@", [dateFormatter stringFromDate:[NSDate date]]);
выводит текущий день недели в виде строки в языковом стандарте в зависимости от текущих региональных настроек.
Чтобы получить только номер дня недели, вы должны использовать класс NSCalendar:
NSCalendar *gregorian = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDateComponents *comps = [gregorian components:NSWeekdayCalendarUnit fromDate:[NSDate date]];
int weekday = [comps weekday];
[dateFormatter weekdaySymbols]
(и подобное), который возвращает NSArray из NSStrings, начиная с воскресенья с индексом 0.[gregorian setFirstWeekday:2];
и за понедельник 06.01.2015 получаю 2 ([components weekday]
). Зачем? - Я нахожу ответ здесьПросто используйте эти три строчки:
источник
Многие ответы здесь устарели. Это работает с iOS 8.4 и дает вам день недели в виде строки и числа.
источник
weekday
компонентNSCalendar
- этоNSInteger
, вам нужно будет выполнить приведение[comps weekday]
кint
, если вам нужно, иначе он покажет предупреждение об этом.Вот как вы это делаете в Swift 3 и получаете локализованное название дня…
источник
источник
Мне нужен был простой (григорианский) индекс дня недели, где 0 = воскресенье и 6 = суббота, чтобы использовать его в алгоритмах сопоставления с образцом. Отсюда можно легко найти название дня в массиве с помощью индекса. Вот то, что я придумал, для чего не нужны средства форматирования даты, NSCalendar или манипуляции с компонентами даты:
источник
Вот обновленный код для Swift 3
Код:
Чтобы напечатать имя события как строку:
источник
Я думаю, что эта тема действительно полезна, поэтому я публикую код, совместимый со Swift 2.1 .
В любом месте вы можете позвонить:
Swift 3.0
Как предложил @ delta2flat, я обновляю ответ, давая пользователю возможность указать собственный формат.
источник
Ответ Владимира сработал для меня, но я подумал, что опубликую ссылку Unicode для строк формата даты.
http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns
Эта ссылка предназначена для iOS 6. Другие версии iOS имеют другие стандарты, которые можно найти в документации X-Code.
источник
Вот так это работает в Swift:
Затем присвойте полученным числам дни недели.
источник
У меня была довольно странная проблема с получением дня недели. Просто установить firstWeekday было недостаточно. Также необходимо было установить часовой пояс. Мое рабочее решение было:
источник
Swift 2: укажите день недели в одной строке. ( на основе ответа neoscribe )
источник
есть три символа, которые мы можем использовать для форматирования дня недели:
Следующие два документа могут вам помочь.
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html
http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns
Демо:
Вы можете протестировать свой паттерн на этом сайте:
http://nsdateformatter.com/
источник