Então eu peguei seu código e executei e funcionou bem para mim ...
O problema, eu acho, que você está tendo é que você está esperando um
LocalDate
objeto para manter o formato original com o qual você analisou o objeto, não é assim que LocalDate
funciona. LocalDate
é uma representação de data ou período no tempo, não é um formato. LocalDate
tem um toString
método que pode ser usado para despejar o valor do objeto, este é um formato interno usado pelo objeto para fornecer uma representação legível por humanos. Para formatar a data, você precisa usar algum tipo de formatador, que pegará o padrão desejado e um valor de data e retornará uma
String
Por exemplo, o código a seguir...
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));
Produzido...
2005-03-16/16-Mar-05
2005-03-16/16-Mar-05
2005-03-16/16-Mar-05
Antes que você fique chateado com isso, é assim que Java
Date
funciona também.