SimpleDateFormat Menjana Masa Tarikh Yang Salah untuk YYYY-MM-dd HH:mm Rentetan
Isu:
Menghuraikan rentetan dalam format "YYYY-MM-dd HH:mm" menggunakan SimpleDateFormat menghasilkan tarikh yang tidak dijangka.
Contoh:
<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>
Keputusan Sebenar:
Ahad Dis 30 08:30:00 EST 2012
Keputusan Jangkaan:
2013-03 08:30:00
Penyelesaian:
Isunya terletak pada rentetan corak SimpleDateFormat. Penentu format untuk tahun hendaklah "yyyy" dan bukannya "YYYY".
Kod Dibetulkan:
<code class="java">SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);</code>
Pengubahsuaian ini memastikan tahun itu dihuraikan sebagai tahun empat digit, sejajar dengan format yang dijangkakan "YYYY-MM-dd HH:mm".
Atas ialah kandungan terperinci Mengapa SimpleDateFormat Menjana Tarikh yang Salah untuk Rentetan \"YYYY-MM-dd HH:mm\"?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!