Jadi saya mengambil kode Anda dan menjalankannya dan itu berfungsi dengan baik untuk saya...
Masalahnya, menurut saya, yang Anda alami adalah Anda mengharapkan LocalDate
objek untuk mempertahankan format yang Anda gunakan untuk menguraikan objek, ini bukan cara LocalDate
bekerja.
LocalDate
adalah representasi tanggal atau periode waktu, bukan format.
LocalDate
memiliki toString
metode yang dapat digunakan untuk membuang nilai objek, ini adalah format internal yang digunakan oleh objek untuk memberikan representasi yang dapat dibaca manusia.
Untuk memformat tanggal, Anda perlu menggunakan semacam formater, yang akan mengambil pola yang Anda inginkan dan nilai tanggal dan mengembalikan String
Misalnya, kode berikut...
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
String date = "16-Mar-05";
DateTimeFormatter dtf = DateTimeFormat.forPattern("dd-MMM-yy");
LocalDate localDate2 = dtf.parseLocalDate(date);
System.out.println(localDate2 + "/" + dtf.print(localDate2));
//second way
LocalDate localDate3 = LocalDate.parse(date, DateTimeFormat.forPattern("dd-MMM-yy"));
System.out.println(localDate3 + "/" + dtf.print(localDate3));
//third way
DateTimeFormatter FORMATTER = DateTimeFormat.forPattern("dd-MMM-yy");
DateTime dateTime = FORMATTER.parseDateTime(date);
LocalDate localDate4 = dateTime.toLocalDate();
System.out.println(localDate4 + "/" + FORMATTER.print(localDate4));
Diproduksi...
2005-03-16/16-Mar-05
2005-03-16/16-Mar-05
2005-03-16/16-Mar-05
Sebelum Anda kesal tentang ini, beginilah Date
Java bekerja juga.