Rumah >Java >javaTutorial >Mengapa Menghuraikan Rentetan Tarikh dengan 'T' dalam Java Melemparkan Pengecualian 'Wokok Corak Haram 'T''?

Mengapa Menghuraikan Rentetan Tarikh dengan 'T' dalam Java Melemparkan Pengecualian 'Wokok Corak Haram 'T''?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-08 14:54:12536semak imbas

Why Does Parsing a Date String with

Watak Corak Haram 'T' Apabila Menghuraikan Rentetan Tarikh ke java.util.Date

Apabila cuba menghuraikan rentetan tarikh kepada standard tarikh menggunakan Java Date API, anda mungkin menghadapi pengecualian dengan mesej berikut: "Watak corak tidak sah 'T'". Ralat ini timbul kerana corak yang ditentukan untuk penghuraian termasuk aksara "T", yang tidak dikenali sebagai aksara corak yang sah.

Punca:

"T" aksara dalam rentetan tarikh mewakili pemisah masa antara komponen tarikh dan masa. Walau bagaimanapun, corak SimpleDateFormat lalai tidak termasuk aksara ini. Akibatnya, penghurai mentafsirkannya sebagai watak corak haram.

Penyelesaian:

Untuk menyelesaikan isu ini, terdapat dua pendekatan utama:

1. Corak Tersuai:

Anda boleh menentukan corak tersuai yang menyertakan aksara "T" sebagai pemisah masa. Contohnya:

String pattern = "yyyy-MM-dd'T'HH:mm:ssZ";

2. Melarikan Petikan Tunggal:

Sebagai alternatif, anda boleh melarikan diri daripada aksara "T" menggunakan petikan tunggal. Dengan cara ini, ia akan dianggap sebagai watak literal dan bukannya watak corak.

String pattern = "yyyy-MM-dd'T'hh:mm:ssZ";

Nota Tambahan:

  • Dalam Java 8 dan lebih tinggi, anda boleh menggunakan kelas DateTimeFormatter untuk menghuraikan rentetan tarikh dengan lebih fleksibel dan ringkas. Contohnya:
String input = "2010-10-02T12:23:23Z";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'");
LocalDateTime dateTime = LocalDateTime.parse(input, formatter);
  • Ingat untuk menetapkan Zon Waktu kepada UTC atau zon waktu yang berkaitan apabila menghuraikan rentetan tarikh.

Menggunakan salah satu kaedah ini seharusnya membolehkan anda berjaya menghuraikan rentetan tarikh dengan aksara "T" sebagai pemisah masa.

Atas ialah kandungan terperinci Mengapa Menghuraikan Rentetan Tarikh dengan 'T' dalam Java Melemparkan Pengecualian 'Wokok Corak Haram 'T''?. 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