SimpleDateFormat Menghuraikan "YYYY-MM-dd HH:mm" Dengan Salah
Apabila cuba menghuraikan rentetan dalam format "YYYY-MM -dd HH:mm" ke Tarikh, sesetengah pembangun menghadapi keputusan tarikh yang tidak dijangka. Ini berlaku apabila menggunakan kelas SimpleDateFormat dengan tetapan lembut ditetapkan kepada palsu.
Coretan kod berikut menunjukkan isu:
<code class="java">Date newDate = null; String dateTime = "2013-03-18 08:30"; SimpleDateFormat df = new SimpleDateFormat("YYYY-MM-dd HH:mm", Locale.ENGLISH); df.setLenient(false); try { newDate = df.parse(dateTime); } catch (ParseException e) { throw new InvalidInputException("Invalid date input."); }</code>
Kod ini menghasilkan tarikh yang salah:
Sun Dec 30 08:30:00 EST 2012 (wrong)
Untuk menyelesaikan isu ini, sahkan bahawa format tahun yang dinyatakan dalam corak SimpleDateFormat ialah huruf kecil "yyyy" dan bukannya huruf besar "YYYY."
<code class="java">SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);</code>
Dengan membuat pelarasan ini, kod akan menghuraikan "YYYY-MM-dd HH:mm" rentetan dengan betul. Rujuk dokumentasi SimpleDateFormat untuk maklumat lanjut.
Atas ialah kandungan terperinci Mengapa SimpleDateFormat Tersalah Menghuraikan \"YYYY-MM-dd HH:mm\"?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!