Konvertieren von Zeichenfolgen in Datumsangaben in Swift
Wie kann ich umwandeln dieser string "2016-04-14T10:44:00+0000"
in eine NSDate
und halten nur das Jahr, Monat, Tag, Stunde?
Den T
in der Mitte der es wirklich wirft, was ich gewöhnt bin, beim arbeiten mit Datumsangaben.
- Sie wollen nur Jahr , Monat , Tag , Stunde, richtig ?
- Mögliche Duplikate von Aus dem String zu NSDate in Swift
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konvertieren nach ISO8601 stechen, um Datum
Holen Sie sich das Datum Komponenten für Jahr, Monat, Tag und Stunde vom Datum
Schließlich erstellen Sie eine neue
Date
Objekt-und strip-Minuten und SekundenBeachten Sie auch die Komfort-Formatierer
ISO8601DateFormatter
in iOS eingeführt 10 /macOS 12:.hour
isoDate
Zeichenkette nicht mit dem format. Der zweite Teil soll die Arbeit in jedem Fall, wenn Sie ein gültiges Datum.print
zeigt Termine in UTC. Das date-Objekt ist Mitternacht, je nach Ihrer Zeitzone. Wenn Sie möchten, um eine zone unabhängig Datum, die Zeitzone, das Datums-formatter zuUTC
POSIX
? Ansonsten Parsen wird nicht korrekt sein."2018-07-21T15:10:28.2329784 + 05:30"
im Datum?"yyyy-MM-dd'T'HH:mm:ss.SS ZZZZ"
- Format nicht arbeiten. ich bin block in stackoverflow, die Frage kann yout mir bitte sagen?Versuchen Sie Folgendes Datum-Format.
Hoffe es hilft..
Swift 4.1 :
Swift 4.1 können Sie tun:
Swift 3.0 - 4.2
Hallo Sie haben separate T-Format und dann konvertieren, wie Sie möchten
Nur Ihre Weitergabe Ihrer
dateformate
und Ihr Datum dann erhalten SieYear,month,day,hour
. Extra infoBekommen Jahr
Monat
Bekommen Tag
Bekommen Stunde
In swift4,
//Ausgabe : Mar 30 2019 05:30 Uhr
Bitte verwenden Sie einen nach ISO8601-parsing-Bibliothek, dies zu tun. Es gibt zu viele Möglichkeiten, wie könnte der string codiert werden. Verlassen Sie sich nicht auf ein bestimmtes format, und verlassen Sie sich nicht auf der server sendet immer die gleiche. Die Probleme beginnen mit dem 'Z' am Ende und es wird sich durch alle Varianten der standard. Eine parsing-Bibliothek alle Fälle behandeln und immer eine sichere Umwandlung - in der Erwägung, dass eine Feste Formatierung der Zeichenkette ist wahrscheinlich ein Fehler in der Zukunft.
Könnten Sie eine dieser Bibliotheken. Sie sind auch CococaPods:
https://github.com/boredzo/iso-8601-date-formatter/
https://github.com/malcommac/SwiftDate
Werfen Sie einen Blick auf die Implementierungen. Sie sind beide mehrere hundert Zeilen lang - aus gutem Grund.
Im Hinblick auf die Frage: Sie ziehen aus der Komponenten Datum aus dem Datum mit NSDateComponents. Das Beispiel auf der website deckt genau Ihren Fall.
https://developer.apple.com/documentation/foundation/nscalendar/1414841-components?language=objc
Bitte beachten Sie, dass die Konvertierung Ihrer Datum wird unter Berücksichtigung der Zeitzone. Sie möchten möglicherweise festlegen den 'locale' der NSCalendar ausdrücklich.