Rumah >Java >javaTutorial >Mengapa Menghuraikan '2010-10-02T12:23:23Z' Membuang 'Aksara corak tidak sah 'T'' dalam API Tarikh Java?
Watak Corak Haram 'T' semasa Menghuraikan Rentetan Tarikh ke java.util.Date
Soalan:
Apabila cuba menghuraikan rentetan tarikh seperti "2010-10-02T12:23:23Z" menggunakan Java Date API, pengecualian dilemparkan: "java.lang.IllegalArgumentException: Aksara corak haram 'T'". Mengapa ini berlaku, dan adakah perlu untuk membahagi dan menghuraikan rentetan secara manual?
Jawapan:
Watak 'T' dalam rentetan, yang mewakili masa pemisah, adalah punca isu. Untuk menyelesaikannya, adalah perlu untuk melepaskan watak 'T' dengan petikan tunggal ('') dalam rentetan corak. Corak yang betul hendaklah "yyyy-MM-dd'T'hh:mm:ssZ".
Contoh:
String date = "2010-10-02T12:23:23Z"; String pattern = "yyyy-MM-dd'T'hh:mm:ssZ"; SimpleDateFormat sdf = new SimpleDateFormat(pattern); try { Date d = sdf.parse(date); System.out.println(d.getYear()); } catch (ParseException e) { e.printStackTrace(); }
Sebagai alternatif, untuk Java 8 dan lebih tinggi, adalah disyorkan untuk gunakan Instant.parse sebaliknya, yang menyediakan pendekatan yang lebih mantap dan moden untuk menghuraikan tarikh.
Instant.parse("2015-04-28T14:23:38.521Z")
Atas ialah kandungan terperinci Mengapa Menghuraikan '2010-10-02T12:23:23Z' Membuang 'Aksara corak tidak sah 'T'' dalam API Tarikh Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!