Rumah  >  Artikel  >  Java  >  Mengapa SimpleDateFormat Menetapkan Semua Tarikh kepada Januari Apabila Menghuraikan Tarikh Direktori Aktif?

Mengapa SimpleDateFormat Menetapkan Semua Tarikh kepada Januari Apabila Menghuraikan Tarikh Direktori Aktif?

DDD
DDDasal
2024-10-24 07:50:02309semak imbas

Why is SimpleDateFormat Assigning All Dates to January When Parsing Active Directory Dates?

SimpleDateFormat Salah Memaparkan Bulan

Apabila bekerja dengan tarikh, adalah penting untuk data ditukar dengan tepat. Walau bagaimanapun, apabila menggunakan SimpleDateFormat Java untuk menghuraikan tarikh yang diekstrak daripada Active Directory (AD), isu boleh timbul apabila semua tarikh tidak ditetapkan pada Januari.

Masalahnya

Dalam coretan kod yang disediakan, SimpleDateFormat dimulakan dengan rentetan corak berikut:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/DD");

Rentetan corak ini menentukan format jangkaan rentetan tarikh: tahun (yyyy), bulan (MM) dan hari ( DD). Walau bagaimanapun, nilai parsedDate secara konsisten menunjukkan bulan sebagai Januari, tanpa mengira bulan sebenar yang disertakan dalam tarikh AD.

Penyelesaian

Isunya terletak pada penggunaan huruf besar "MM" dalam rentetan corak. Dalam SimpleDateFormat, huruf besar "MM" mewakili bulan sebagai nama penuh, manakala huruf kecil "MM" mewakili bulan sebagai nombor dua digit.

Untuk membetulkan isu ini, rentetan corak hendaklah diubah suai untuk menggunakan huruf kecil "MM":

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");

Dengan menggunakan huruf kecil "MM", SimpleDateFormat akan menghuraikan bulan dengan betul sebagai nombor dua digit, menghapuskan isu Januari yang konsisten.

Atas ialah kandungan terperinci Mengapa SimpleDateFormat Menetapkan Semua Tarikh kepada Januari Apabila Menghuraikan Tarikh Direktori Aktif?. 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