Rumah >Java >javaTutorial >Bagaimana untuk Mengendalikan 'Watak corak haram 'T'' Apabila Menghuraikan Tarikh di Jawa?

Bagaimana untuk Mengendalikan 'Watak corak haram 'T'' Apabila Menghuraikan Tarikh di Jawa?

Patricia Arquette
Patricia Arquetteasal
2024-12-08 00:27:10971semak imbas

How to Handle

Menghuraikan Rentetan Tarikh dengan Aksara Haram

Apabila cuba menghuraikan rentetan tarikh dalam Java menggunakan SimpleDateFormat, anda mungkin menghadapi pengecualian "Corak tidak sah watak 'T'". Isu ini timbul apabila rentetan tarikh mengandungi aksara 'T', yang menetapkan komponen masa apabila mengikut piawaian ISO 8601.

Punca Pengecualian

Format Tarikh Mudah class mentafsir 'T' sebagai aksara khas yang memisahkan bahagian tarikh dan masa rentetan. Walau bagaimanapun, corak lalai tidak termasuk 'T' sebagai aksara, yang membawa kepada pengecualian.

Penyelesaian Kemungkinan

Terdapat beberapa cara untuk menangani isu ini:

  1. Ubah suai Corak:

    • Tambahkan petikan tunggal pada kedua-dua belah 'T' dalam rentetan corak. Ini terlepas daripada aksara, membenarkan ia ditafsirkan sebagai literal.
    • Contoh: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ")
  2. Gunakan DateTimeFormatter (Java 8 ):

    • Mula menggunakan kelas DateTimeFormatter moden yang diperkenalkan di Java 8.
    • Buat pemformat dengan tarikh dan masa yang sesuai corak.
    • Contoh:

       DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ");
       Date date = formatter.parse("2010-10-02T12:23:23Z", LocalDateTime::from);
  3. Pemisahan Rentetan Manual:

    • Jika pendekatan di atas tidak berkesan, pertimbangkan untuk memisahkan rentetan tarikh secara manual dan menghuraikan tarikh dan masa komponen secara berasingan.

Nota:

Jika rentetan tarikh mengandungi 'Z' mengekori untuk menandakan waktu UTC, pastikan bahawa 'XXX' bahagian corak disertakan.

Sampel Kod yang Diperbaiki (dengan escaped 'T'):

public static void main(String[] args) {
    String date = "2010-10-02T12:23:23Z";
    String pattern = "yyyy-MM-dd'T'hh:mm:ssXXX";
    SimpleDateFormat sdf = new SimpleDateFormat(pattern);
    try {
        Date d = sdf.parse(date);
        System.out.println(d.getYear());
    } catch (ParseException e) {
        e.printStackTrace();
    }
}

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan 'Watak corak haram 'T'' Apabila Menghuraikan Tarikh di Jawa?. 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