Rumah  >  Artikel  >  Java  >  Mengapa Penukaran Tarikh Java Saya Menghasilkan Bulan Yang Salah?

Mengapa Penukaran Tarikh Java Saya Menghasilkan Bulan Yang Salah?

DDD
DDDasal
2024-11-06 08:14:021135semak imbas

Why is My Java Date Conversion Producing the Wrong Month?

Isu Penukaran Format Tarikh Java: Paparan Bulan Tidak Betul

Masalah Yang Dihadapi

Apabila cuba menukar tarikh daripada satu format kepada format lain menggunakan Java, beberapa pengguna telah menghadapi masalah di mana bulan itu dipaparkan secara tidak betul. Khususnya, apabila menukar daripada format seperti "yyyy-mm-dd" kepada "dd MMMM yyyy", bulan yang terhasil muncul sebagai bulan berikutnya (mis., "01/12/21" menjadi "01 Januari 2021" dan bukannya "01 Disember 2021").

Spesifikasi Format Tidak Betul

Punca isu ini terletak pada spesifikasi rentetan fromFormat yang salah. Dalam contoh yang disediakan, fromFormat ditakrifkan sebagai "yyyy-mm-dd." Walau bagaimanapun, "mm" dalam kelas Java SimpleDateFormat menandakan minit, bukan bulan. Untuk mewakili bulan dengan betul, penentu format hendaklah "MM."

Kod Dibetulkan

Untuk menyelesaikan isu ini, kod hendaklah dikemas kini seperti berikut:

String dateStr = "2011-12-15";
String fromFormat = "yyyy-MM-dd";
String toFormat = "dd MMMM yyyy";

try {
    DateFormat fromFormatter = new SimpleDateFormat(fromFormat);
    Date date = fromFormatter.parse(dateStr);

    DateFormat toFormatter = new SimpleDateFormat(toFormat);
    String result = toFormatter.format(date);
    
    System.out.println(result); // Prints "15 December 2011"
} catch (ParseException e) {
    e.printStackTrace();
}

Atas ialah kandungan terperinci Mengapa Penukaran Tarikh Java Saya Menghasilkan Bulan Yang Salah?. 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