Jak ustawić dzień tygodnia jako ciąg znaków?
ios
objective-c
cocoa-touch
nsdate
Mosze
źródło
źródło
[dateFormatter weekdaySymbols]
(i podobnych), co zwraca NSArray of NSStrings zaczynając od niedzieli o indeksie 0.[gregorian setFirstWeekday:2];
i na poniedziałek 01.06.2015 otrzymuję 2 ([components weekday]
). Czemu? - Odpowiedź znajduję tutajPo prostu użyj tych trzech linii:
źródło
Wiele odpowiedzi tutaj jest przestarzałych. Działa od iOS 8.4 i podaje dzień tygodnia jako ciąg i jako liczbę.
źródło
weekday
komponentNSCalendar
jest anNSInteger
, będziesz musiał rzucić[comps weekday]
na anint
, jeśli zajdzie taka potrzeba, w przeciwnym razie wyświetli ostrzeżenie dotyczące tego.Oto jak to zrobić w Swift 3 i uzyskać zlokalizowaną nazwę dnia…
źródło
źródło
Potrzebowałem prostego (gregoriańskiego) indeksu dnia tygodnia, w którym 0 = niedziela i 6 = sobota do wykorzystania w algorytmach dopasowywania wzorców. Stamtąd wystarczy wyszukać nazwę dnia z tablicy przy użyciu indeksu. Oto, co wymyśliłem, co nie wymaga formatowania daty, NSCalendar ani manipulacji składnikami daty:
źródło
Oto zaktualizowany kod dla Swift 3
Kod :
Aby wydrukować nazwę zdarzenia jako ciąg:
źródło
Myślę, że ten temat jest naprawdę przydatny, więc zamieszczam kod zgodny ze Swift 2.1 .
Gdziekolwiek możesz zadzwonić:
Swift 3.0
Jak zasugerował @ delta2flat, aktualizuję odpowiedź, dając użytkownikowi możliwość określenia niestandardowego formatu.
źródło
Odpowiedź Vladimira działała dobrze, ale pomyślałem, że opublikuję łącze Unicode dla ciągów formatu daty.
http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns
Ten link dotyczy iOS 6. Pozostałe wersje iOS mają inne standardy, które można znaleźć w dokumentacji X-Code.
źródło
Tak to działa w Swift:
Następnie przypisz dni tygodnia do wynikowych liczb.
źródło
Miałem dość dziwny problem z ustaleniem dnia tygodnia. Samo ustawienie jako pierwsze Weekday nie wystarczyło. Konieczne było również ustawienie strefy czasowej. Moje rozwiązanie robocze to:
źródło
Swift 2: Uzyskaj dzień tygodnia w jednej linii. (na podstawie odpowiedzi neoscribe )
źródło
istnieją trzy symbole, których możemy użyć do sformatowania dnia tygodnia:
Poniższe dwa dokumenty mogą ci pomóc.
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
Próbny:
możesz przetestować swój wzór na tej stronie:
http://nsdateformatter.com/
źródło