swift - Konvertierung einer Zeichenfolge in ein Datum und dann einen String in einem anderen format
Angenommen ich habe einen einfachen String, extrahiert aus einem array von strings (die Daten) -
var myDateString = "2015-11-25 04:31:32.0"
Nun, ich will es in einen string konvertieren, der aussieht wie Nov 25, 2015.
Dafür, ich nehme an, ich muss -
- bekommen ein NSDate date-Objekt aus string mit NSDateFormatter
- Holen Sie sich einen string aus, dass NSDate-Objekt, indem Sie einige Funktionen (welche ich habe nicht in der Lage zu finden)
Ich habe versucht, diesen Spielplatz, aber nicht in der Lage waren zu lösen, so ein einfaches problem.
Hier ist was ich versucht habe -
Line 1| var dateFormatter = NSDateFormatter()
Line 2| dateFormatter.locale = NSLocale.currentLocale()
Line 3| dateFormatter.dateFormat = "YYYY-MM-dd HH:mm:ss.A"
Line 4| let somedate = dateFormatter.dateFromString(str)
Line 5| let somedateString = dateFormatter.stringFromDate(somedate!)
In der Seitenleiste von Xcode, Linie 4 Drucke "Nov 25, 2015, 12:00 AM"
, aber wenn ich versuche, drucken Sie eine Zeichenfolge aus somedate
bekomme ich "2015-11-25 00:00:00.0"
.
Habe ich nicht gefunden eine einzige richtige Erklärung von NSDates überall.
Diese war so viel einfacher, in Java mit parse()
und format()
Funktionen für Datumsangaben.
... und YYYY statt yyyy ist die Ursache für ein gutes lachen jedes Jahr rund um den 1. Januar, wenn alle posts, wie Ihre Termine sind gebrochen.
InformationsquelleAutor Kunal Chawla | 2016-01-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aktualisiert für Swift 3.0
Müssen Sie zwei Datums-formatter - einen Sinn zu geben Ihren input string und konvertieren in ein NSDate und einen anderen Formatierer zu erstellen, der Ausgabe-string
Habe ich aktualisiert diese Antwort zum ändern der Datumsformatierung von YYYY bis yyyy. In den meisten Fällen wird es keinen Unterschied zwischen den beiden, aber YYYY behandeln kann in den ersten paar Tagen des Jahres als Teil der letzten vollständigen Woche des Vorjahres.
Den Apple developer guides erklären, wie diese.
NEIN, NEIN, NEIN, NEIN, NEIN. Informieren Sie sich über den Unterschied zwischen JJJJ und JJJJ und fixieren Sie Ihre eigenen code, wenn Sie verwenden JJJJ.
Swift ist genial. Die Datumsformatierung mit YYYY ist gebrochen.
Genial! Dank
InformationsquelleAutor Russell
Müssen Sie zwei Datums-formatter wie andere vorgeschlagen. Darüber hinaus eines der Probleme ist, dass Sie verwenden .A statt .S für die Sekundenbruchteile. (Siehe den link zu Unicode-Datum-Format-Spezifikation wie schon in @MartinR ' s Kommentar)
.Eine ist Millisekunden in den Tag
.S ist in Sekundenbruchteilen
Dem Sie die folgenden in einem Spielplatz:
InformationsquelleAutor So Over It