Rumah  >  Artikel  >  Java  >  Bolehkah `java.time` Menghuraikan Nilai Pecahan-Kedua dalam Rentetan Tarikh?

Bolehkah `java.time` Menghuraikan Nilai Pecahan-Kedua dalam Rentetan Tarikh?

Susan Sarandon
Susan Sarandonasal
2024-10-28 22:26:02406semak imbas

 Can `java.time` Parse Fraction-of-Second Values in Date Strings?

Adakah java.time gagal menghuraikan pecahan-saat?

Pakej Java.time Java 8 bergelut untuk menghuraikan input rentetan dengan komponen pecahan saat apabila menggunakan kelas DateTimeFormatter. Percubaan untuk menghuraikan rentetan seperti "2011120312345655" menggunakan corak format "yyyyMMddHHmmssSS" menghasilkan DateTimeParseException, walaupun dokumentasi menunjukkan bahawa "SS" seharusnya mewakili nilai pecahan saat.

Workaround Priorkaround Java 9

Sebelum Java 9, penyelesaian telah dicadangkan:

<code class="java">DateTimeFormatter dtf = 
  new DateTimeFormatterBuilder()
  .appendPattern("yyyyMMddHHmmss")
  .appendValue(ChronoField.MILLI_OF_SECOND, 3)
  .toFormatter();</code>

Walau bagaimanapun, penyelesaian ini tidak menangani sepenuhnya isu ini, kerana ia tidak dapat mengendalikan kes penggunaan hanya dua simbol corak, "SS". Penyelesaian alternatif menggunakan medan lain atau pustaka luaran turut dicadangkan.

Resolusi dalam Java 9

Isu JDK yang dikaitkan dengan masalah ini telah ditandakan sebagai diselesaikan untuk Java 9. Ini menunjukkan bahawa keupayaan pakej java.time untuk menghuraikan nilai pecahan saat telah dipertingkatkan dalam versi ini.

Atas ialah kandungan terperinci Bolehkah `java.time` Menghuraikan Nilai Pecahan-Kedua dalam Rentetan Tarikh?. 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