Heim  >  Artikel  >  Java  >  Wie analysiere ich eine ISO 8601-Zeichenfolge mit einem fehlenden Doppelpunkt im Offset zum Java 8-Datum?

Wie analysiere ich eine ISO 8601-Zeichenfolge mit einem fehlenden Doppelpunkt im Offset zum Java 8-Datum?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-04 11:16:29680Durchsuche

How to Parse an ISO 8601 String with a Missing Colon in the Offset to Java 8 Date?

Parsen einer ISO 8601-Zeichenfolge mit einem fehlenden Doppelpunkt im Offset zum Java 8-Datum

Problem:

Die ZonedDateTime.parse()-Methode von Java 8 schlägt fehl, eine Datumszeichenfolge im ISO 8601-Format zu analysieren, der ein Doppelpunkt im Offset fehlt, wie zum Beispiel „2018-02-13T10:20:12.120 0000.“

Lösung:

Bis der Fehler behoben ist (Java 8 bis 121):

Verwenden Sie einen DateTimeFormatter mit einem benutzerdefinierten Muster, um den fehlenden Doppelpunkt anzugeben im Offset:

<code class="java">String input = "2018-02-13T10:20:12.120+0000";
DateTimeFormatter f = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss.SSSX");
OffsetDateTime odt = OffsetDateTime.parse(input, f);</code>

Wenn der Fehler behoben ist:

Rufen Sie einfach OffsetDateTime.parse() mit der ISO 8601-Zeichenfolge ohne Muster auf:

<code class="java">OffsetDateTime odt = OffsetDateTime.parse("2018-02-13T10:20:12.120+0000");</code>

Details:

  • Die OffsetDateTime-Klasse stellt ein Datum mit einem Offset von UTC dar, der für die Eingabezeichenfolge geeignet ist.
  • By Standardmäßig verwendet java.time ISO 8601-Formate zum Parsen, erwartet jedoch einen Doppelpunkt im Offset.
  • Der DateTimeFormatter ermöglicht eine Anpassung, sodass Sie das Vorhandensein des Doppelpunkts angeben können.
  • Zu Um Mehrdeutigkeiten zu vermeiden, wird empfohlen, den Doppelpunkt als Offset zu verwenden, immer sowohl Stunden als auch Minuten anzugeben (auch wenn Null) und Null links von einer einstelligen Minute aufzufüllen.

Das obige ist der detaillierte Inhalt vonWie analysiere ich eine ISO 8601-Zeichenfolge mit einem fehlenden Doppelpunkt im Offset zum Java 8-Datum?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn