Rumah >Java >javaTutorial >Bagaimana untuk Menghuraikan Rentetan ISO 8601 dengan Kolon yang Hilang dalam Offset dalam Java 8?

Bagaimana untuk Menghuraikan Rentetan ISO 8601 dengan Kolon yang Hilang dalam Offset dalam Java 8?

Susan Sarandon
Susan Sarandonasal
2024-11-03 08:19:02551semak imbas

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

Menghuraikan Rentetan ISO 8601 tanpa Kolon dalam Offset ke Tarikh Java 8

Isu timbul apabila cuba menghuraikan rentetan berformat ISO 8601 dengan offset yang tidak mempunyai titik bertindih (cth., "2018-02-13T10:20:12.120 0000") menggunakan API tarikh-masa baharu dalam Java 8.

Penyelesaian

Sehingga pepijat dibetulkan (Java 8)

Gunakan penyelesaian:

  • Hack: Masukkan titik bertindih dalam rentetan input:
<code class="java">String input = "2018-02-13T10:20:12.120+0000".replace( "+0000" , "+00:00" );
OffsetDateTime odt = OffsetDateTime.parse( input );</code>
  • Corak pemformatan eksplisit:
<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>

Apabila pepijat dibetulkan:

Untuk menghuraikan tanpa penyelesaian:

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

Nota Tambahan:

  • Elakkan kelas tarikh-masa lama seperti java.util.Date dan SimpleDateFormat.
  • Gunakan OffsetDateTime untuk offset dan Instant untuk Nilai UTC.
  • Untuk penukaran zon waktu, gunakan ZonedDateTime.
  • Semak Stack Overflow untuk mendapatkan contoh dan maklumat tambahan.

Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Rentetan ISO 8601 dengan Kolon yang Hilang dalam Offset dalam Java 8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn