Så jag tog din kod och körde den och den fungerar bra för mig...
Problemet, tror jag, du har är att du förväntar dig en LocalDate
objekt för att behålla formatet som du ursprungligen analyserade objektet med, det är inte hur LocalDate
fungerar.
LocalDate
är en representation av datum eller tidsperiod, det är inte ett format.
LocalDate
har en toString
metod som kan användas för att dumpa objektets värde, det är ett internt format som används av objektet för att ge en läsbar representation för människor.
För att formatera datumet måste du använda någon form av formaterare, som tar det mönster du vill ha och ett datumvärde och returnerar en String
Till exempel, följande kod...
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));
Producerad...
2005-03-16/16-Mar-05
2005-03-16/16-Mar-05
2005-03-16/16-Mar-05
Innan du blir upprörd över detta, så här är Java Date
fungerar också.