Así que tomé su código y lo ejecuté y funciona bien para mí...
Creo que el problema que tienes es que esperas una LocalDate
objeto para mantener el formato con el que analizó originalmente el objeto, no es así como LocalDate
funciona.
LocalDate
es una representación de fecha o período en el tiempo, no es un formato.
LocalDate
tiene un toString
método que se puede utilizar para volcar el valor del objeto, este es un formato interno utilizado por el objeto para proporcionar una representación legible por humanos.
Para formatear la fecha, debe usar algún tipo de formateador, que tomará el patrón que desea y un valor de fecha y devolverá una String
Por ejemplo, el siguiente código...
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));
Producido...
2005-03-16/16-Mar-05
2005-03-16/16-Mar-05
2005-03-16/16-Mar-05
Antes de que te molestes por esto, así es como Java Date
funciona también.