Wie kann ich diesen String "2016-04-14T10:44:00+0000"
in einen konvertieren NSDate
und nur das Jahr, den Monat, den Tag und die Stunde behalten?
Das T
in der Mitte wirft wirklich ab, was ich gewohnt bin, wenn ich mit Datteln arbeite.
swift
nsdate
nsdateformatter
asheyla
quelle
quelle
Antworten:
Konvertieren Sie die ISO8601-Zeichenfolge in das Datum
Rufen Sie die Datumskomponenten für Jahr, Monat, Tag und Stunde ab dem Datum ab
Erstellen Sie schließlich ein neues
Date
Objekt und entfernen Sie Minuten und SekundenBeachten Sie auch den
ISO8601DateFormatter
in iOS 10 / macOS 12 eingeführten Convenience-Formatierer :quelle
.hour
Versuchen Sie das folgende Datumsformat.
Ich hoffe es hilft..
Swift 4.1:
quelle
In Swift 4.1 können Sie Folgendes tun:
quelle
Swift 3.0 - 4.2
quelle
Hallo, Sie haben ein separates T-Format und konvertieren dann nach Belieben
quelle
Nur
dateformate
wenn du dein und dein Date bestanden hast, bekommst duYear,month,day,hour
. ZusatzinformationHolen Sie sich Jahr
Holen Sie sich Monat
Holen Sie sich Tag
Holen Sie sich Stunde
quelle
globale Funktion machen
Funktion aufgerufen und Wert darin übergeben
und hier wird ausgegeben
quelle
In swift4,
// Ausgabe: - 30. März 2019, 17:30 Uhr
quelle
Nur Schritt 1> Holen Sie sich den String-Wert von JSON oder dataSource
Schritt 2> Erstellen Sie eine lokale Variable und weisen Sie sie zu.
Schritt 3> Erstellen Sie eine Instanz von DateFormatter.
Schritt 4> Rufen Sie das DateFormat von dateFormatter aus auf und geben Sie den Datentyp für das gespeicherte Datum ein.
Schritt 5> Weisen Sie dieser zu konvertierenden Variablen die lokale Variable zu.
Schritt 6> Geben Sie Ihr gewünschtes Datum an. Formatieren Sie mit dem folgenden Code.
Schritt 6> Weisen Sie es Beschriftung / Text zu
Code:
quelle
Swift 5. Um zu sehen, ob ein Datum verstrichen ist:
quelle
Ich wurde auch mit diesem Format verrückt.
Siehe die Lösung unten.
Ihr String, der von Ihrem Rücken oder einer anderen Quelle stammt:
Identifizieren Sie das Datumsformat
Nachdem Sie das Datum als Date () festgelegt haben, können Sie mit formatDate.string in das gewünschte Format wechseln
Ausgabe:
quelle
Verwenden Sie dazu eine ISO8601-Analysebibliothek. Es gibt zu viele Möglichkeiten, wie die Zeichenfolge codiert werden könnte. Verlassen Sie sich nicht auf ein bestimmtes Format und nicht darauf, dass der Server immer dasselbe sendet. Die Probleme beginnen mit dem 'Z' am Ende und erstrecken sich über alle Varianten des Standards. Eine Analysebibliothek behandelt alle Fälle und bietet immer eine sichere Konvertierung - während eine feste Formatierungszeichenfolge in Zukunft wahrscheinlich fehlschlägt.
Sie können eine dieser Bibliotheken verwenden. Sie sind auch auf CococaPods erhältlich:
https://github.com/boredzo/iso-8601-date-formatter/
https://github.com/malcommac/SwiftDate
Schauen Sie sich die Implementierungen an. Sie sind beide mehrere hundert Zeilen lang - aus gutem Grund.
Zur Frage: Mit NSDateComponents können Sie die Datumskomponenten aus dem Datum ziehen. Das Beispiel auf der Website deckt genau Ihren Fall ab.
https://developer.apple.com/documentation/foundation/nscalendar/1414841-components?language=objc
Bitte beachten Sie, dass bei der Konvertierung Ihres Datums die Zeitzone berücksichtigt wird. Möglicherweise möchten Sie das Gebietsschema des NSCalendar explizit festlegen.
quelle
Verwenden Sie einfach SwifterSwift.
quelle