Dus ik nam je code en voerde het uit en het werkt prima voor mij...
Het probleem dat je hebt, denk ik, is dat je een LocalDate
. verwacht object om de indeling te behouden waarmee u het object oorspronkelijk hebt geparseerd, dit is niet hoe LocalDate
werkt.
LocalDate
is een weergave van de datum of periode in de tijd, het is geen formaat.
LocalDate
heeft een toString
methode die kan worden gebruikt om de waarde van het object te dumpen, dit is een intern formaat dat door het object wordt gebruikt om een door mensen leesbare weergave te bieden.
Om de datum op te maken, moet je een soort formater gebruiken, die het gewenste patroon en een datumwaarde zal nemen en een String
retourneert
Bijvoorbeeld de volgende code...
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));
Geproduceerd...
2005-03-16/16-Mar-05
2005-03-16/16-Mar-05
2005-03-16/16-Mar-05
Voordat je hier boos over wordt, dit is hoe Java Date
werkt ook.