ISO 8601-Daten mit SimpleDateFormat und „Z“-Literal analysieren
Problem:
Versuch Das Parsen einer ISO 8601-Datumszeichenfolge mit dem Zeitzonenliteral „Z“ mithilfe der SimpleDateFormat-Klasse mit verschiedenen Mustern schlägt fehl, die korrekte UTC-Zeit zurückzugeben. Insbesondere wird das Datum „2010-04-05T17:16:00Z“ als „Mo Apr 05 17:16:00 EDT 2010“ geparst, obwohl das „Z“-Literal UTC angibt.
Lösung :
Die SimpleDateFormat-Klasse kann standardmäßig keine Zeitstempel im ISO 8601-Format verarbeiten. In Java 7 wurde jedoch ein neues Muster eingeführt, um speziell mit dieser Situation umzugehen:
yyyy-MM-dd'T'HH:mm:ssX
Dieses Muster erwartet das Zeitzonensuffix „X“, das ein „Z“-Literal zur Angabe von UTC darstellen kann. Wenn Sie dieses Muster verwenden, analysiert SimpleDateFormat das Datum korrekt in sein UTC-Äquivalent.
Alternativer Datumsparser:
Wenn SimpleDateFormat Ihren Anforderungen nicht entspricht, können Sie auch die Verwendung in Betracht ziehen Alternative Datumsanalysebibliotheken wie Joda-Time oder ThreeTen-Backport, die ISO 8601-Daten und Zeitzonenliterale besser unterstützen.
Das obige ist der detaillierte Inhalt vonWie analysiere ich ISO 8601-Daten mit dem Literal „Z' mithilfe von SimpleDateFormat?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!