ホームページ  >  記事  >  Java  >  Java 8のオフセットにコロンが欠落しているISO 8601文字列を解析するにはどうすればよいですか?

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

Susan Sarandon
Susan Sarandonオリジナル
2024-11-03 08:19:02505ブラウズ

How to Parse ISO 8601 String with Missing Colon in Offset in Java 8?

Java 8 日付へのオフセットにコロンを含まない ISO 8601 文字列を解析する

この問題は、次のような ISO 8601 形式の文字列を解析しようとすると発生します。 Java 8 の新しい日時 API を使用したコロンのないオフセット (例: "2018-02-13T10:20:12.120 0000")。

Solution

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

回避策を使用します:

  • ハック: 入力文字列にコロンを挿入します:
<code class="java">String input = "2018-02-13T10:20:12.120+0000".replace( "+0000" , "+00:00" );
OffsetDateTime odt = OffsetDateTime.parse( input );</code>
  • 明示的な書式設定パターン:
<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>

バグ修正時:

回避策なしで解析するには:

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

追加の注意:

  • java.util.Date や SimpleDateFormat などの従来の日時クラスは避けてください。
  • オフセットには OffsetDateTime を使用し、オフセットには Instant を使用します。 UTC 値。
  • タイム ゾーンの変換には、ZonedDateTime を使用します。
  • その他の例と情報については、スタック オーバーフローを参照してください。

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

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