ホームページ >Java >&#&チュートリアル >Java 8 日付へのオフセットにコロンが欠落している ISO 8601 文字列を解析するにはどうすればよいですか?

Java 8 日付へのオフセットにコロンが欠落している ISO 8601 文字列を解析するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-04 11:16:29738ブラウズ

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

Java 8 日付へのオフセットにコロンが欠落している ISO 8601 文字列の解析

問題:

Java 8 の ZonedDateTime.parse() メソッドは、オフセットにコロンがない ISO 8601 形式の日付文字列 (「2018-02-13T10:20:12.120 0000」など) を解析できません。

解決策:

バグが修正されるまで (Java 8 ~ 121):

カスタマイズされたパターンで DateTimeFormatter を使用して、不足しているコロンを指定しますオフセット内:

<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>

バグが修正された場合:

パターンなしで ISO 8601 文字列を使用して OffsetDateTime.parse() を呼び出すだけです:

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

詳細:

  • OffsetDateTime クラスは、入力文字列に適した UTC からのオフセットを持つ日付を表します。
  • Byデフォルトでは、java.time は解析に ISO 8601 形式を使用しますが、オフセットにはコロンが必要です。
  • DateTimeFormatter を使用するとカスタマイズが可能になり、コロンの有無を指定できます。
  • To曖昧さを避けるため、オフセットにはコロンを使用し、常に時間と分の両方を (ゼロの場合でも) 指定し、1 桁の分の左側にゼロを埋め込むことをお勧めします。

以上がJava 8 日付へのオフセットにコロンが欠落している ISO 8601 文字列を解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。