Rumah >Java >javaTutorial >Mengapakah Java SimpleDateFormat Mentafsir Bulan secara konsisten sebagai Januari dengan Tarikh AD?
Java SimpleDateFormat Sentiasa Mengira Bulan sebagai Januari
Apabila pembangun bekerja dengan nilai tarikh daripada pelbagai sumber, mereka mungkin menghadapi keadaan di mana kelas Java SimpleDateFormat salah mentafsir bahagian bulan pada tarikh tersebut. Isu ini boleh nyata apabila menukar tarikh daripada Active Directory (AD) kepada tarikh Java.
Coretan kod yang disediakan menggunakan SimpleDateFormat untuk menghuraikan nilai tarikh AD ke dalam objek Java Date:
<code class="java">SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/DD");</code>
Walau bagaimanapun, corak format tarikh yang disediakan ("yyyy/MM/DD") menggunakan huruf besar "M" untuk penetapan bulan. Ini bercanggah dengan huruf kecil "M" yang digunakan dalam nilai tarikh AD, mengakibatkan tafsiran bulan yang salah sebagai Januari untuk setiap tarikh yang dihuraikan.
Menangani Isu
Untuk menyelesaikan percanggahan ini, kod tersebut perlu menggunakan corak format yang betul untuk tarikh AD, yang menggunakan huruf kecil "m" untuk penetapan bulan. Selain itu, pemisah tarikh harus sejajar dengan piawaian AD. Oleh itu, corak format yang disemak hendaklah:
<code class="java">SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");</code>
Dengan pelarasan ini, SimpleDateFormat akan menghuraikan nilai tarikh AD dengan betul, menyelesaikan isu tersilap tersilap bulan sebagai Januari dan memastikan perubahan tarikh yang tepat.
Atas ialah kandungan terperinci Mengapakah Java SimpleDateFormat Mentafsir Bulan secara konsisten sebagai Januari dengan Tarikh AD?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!