simpledateFormat analysieren mit 'z' literal
Wenn versucht wird, ein Datum in ISO 8601 -Format mit dem Format zu speichern, kann es nicht mit dem ’literalischen Atertec -Format versagen. Zum Beispiel wird die String "2010-04-05T17: 16: 00Z" unter Verwendung des Musters "yyyy-mm-dd't'hh: mm: ss" zu einer falschen Ortszeit führen. unzureichend zum Parsendaten mit dem 'z' wörtlichen. Dieses Verhalten mag kontraintuitiv erscheinen, da der 'z' wörtlich ausdrücklich Utc.
lösung
vor java 7, analysiert mit dem 'z' literalen Erforderlich das TimeZone auf dem SimpledateFormat -Objekt analysiert. In Java 7 und oben kann das Muster "yyyy-mm-dd't'hh: mm: ssx" verwendet werden, um das UTC-TimeZone-Suffix korrekt zu analysieren und anzuwenden. SimpleDateFormat ("yyyy-mm-dd't'hh: mm: ssx"); Datum Datum = sdf.parse ("2010-04-05t17: 16: 00Z");
Dies wird das Datum als UTC-Zeit richtig analysieren. API. Der folgende Code zeigt, wie Java.time das Datum analysiert:
import Java.time.instant; import Java.time.zonedDatetime; String datestring = "2010-04-05T17: 16: 00Z"; Instant Instant = Instant.Parse (DETESTRING); ZonedDatetime zonedDatetime = Instant.ATzone (zoneId.of ("z"));
Dieser Ansatz beseitigt die Notwendigkeit komplexer Muster oder explizite Zeitzone -Einstellung.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3