Jak przekonwertować coś w stylu NSString
„ 01/02/10 ” (czyli 1 lutego 2010 r.) Na plik NSDate
? I jak mogę zamienić NSDate
plecy w strunę?
ios
objective-c
nsstring
nsdate
Cannyboy
źródło
źródło
Odpowiedzi:
Swift 4 i nowszy
Zaktualizowano: 2018
Ciąg do daty
Data do ciągu
Szybki 3
Zaktualizowano: 20 lipca 2017 r
Ciąg do NSDate
NSDate na ciąg
Szybki
Zaktualizowano: 22 października 2015 r
Ciąg do NSDate
NSDate na ciąg
Cel C
NSString do NSDate
Konwersja NSDate na NSString:
źródło
NSDate *dateFromString = [[NSDate alloc] init];
przypisania nowej wartości do wskaźnika w następnym wierszu?AKTUALIZACJA 2019 (Swift 4):
Zrobiłem
Date
rozszerzenie do tego. UżywaNSDataDetector
zamiastNSDateFormatter
.Bardzo przyjemne, rozpoznaje nawet takie rzeczy jak „Jutro o 5” .
Idzie jak:
AKTUALIZACJA 2014:
Dokonał rozszerzenia NSString do tego.
Dzięki NSDataDetector rozpoznaje wiele formatów.
Część zestawu eppz !, pobierz kategorię NSString + EPPZKit.h z GitHub.
ORYGINALNA ODPOWIEDŹ 2013:
Niezależnie od tego, czy nie masz pewności (lub nie obchodzi Cię) format daty zawarty w ciągu, użyj NSDataDetector do analizy daty .
źródło
NSString
->2013-09-11 01:31:22 +0000
konwertuje naNSDate
->2013-09-11 13:31:22 +0000
XCTAssertEqual(Date.FromString("2013-09-11 01:31:22 +0000"), Date.FromCalendar(2013, 9, 11, 1, 31, 22))
wydaje się w porządku.Podczas korzystania z dat o stałym formacie należy ustawić ustawienia regionalne formatyzatora daty na
"en_US_POSIX"
.Zaczerpnięte z Przewodnika formatowania danych
Swift 3 lub nowszy
stosowanie:
Przetwarzanie niestandardowej daty i konwertowanie daty z powrotem na ten sam format ciągu:
Oto wszystkie elementy, których możesz użyć, aby dostosować go w razie potrzeby:
źródło
Dlaczego nie dodać kategorii do NSString?
źródło
użycie „10” do przedstawienia roku nie jest dobre, ponieważ może to być 1910, 1810 itd. Prawdopodobnie powinieneś użyć do tego 4 cyfr.
Jeśli możesz zmienić datę na coś w stylu
Następnie możesz użyć:
źródło
źródło
źródło
Jeśli chcesz ustawić format, użyj poniższego kodu:
źródło
Użyj tej metody przekonwertować z
NSString
doNSdate
:źródło
Jeśli ktoś jest zainteresowany zrobieniem czegoś takiego w Swift w dzisiejszych czasach, mam coś na początek, chociaż nie jest to idealne.
źródło
Data do NSString
NSString do NSDate
źródło
Możesz do tego użyć rozszerzeń.
Podczas wykonywania rzeczywisty kod będzie wyglądał następująco
Istnieją również domyślne metody, ale myślę, że może nie działać w formacie podanym w dokumentacji
źródło
Najlepszą praktyką jest zbudowanie ogólnej klasy, w której umieścisz wszystkie swoje ogólne metody użytkowania, metody przydatne w prawie wszystkich projektach i dodasz kod sugerowany przez @Pavan jako:
.. i tak dalej dla wszystkich innych przydatnych metod
W ten sposób zaczniesz budować czysty kod wielokrotnego użytku dla swojej aplikacji. Twoje zdrowie!
źródło
Zgodnie z Swift 2.2
Możesz łatwo uzyskać NSDate z String i String z NSDate. na przykład
Pierwszy zestaw formatowania daty
Teraz uzyskaj datę z ciągu znaków i odwrotnie.
Teraz ciesz się.
źródło
NSString na NSDate lub NSDate na NSString
źródło
Powyższe przykłady nie są napisane po prostu dla Swift 3.0+
Aktualizacja - Swift 3.0+ - Konwertuj datę na ciąg
źródło
Ciąg do daty
Data do ciągu
źródło