Więc wziąłem twój kod i uruchomiłem go i u mnie działa dobrze...
Myślę, że masz problem, ponieważ oczekujesz LocalDate
obiekt, aby zachować format, w którym pierwotnie przeanalizowałeś obiekt, tak nie jest LocalDate
działa.
LocalDate
jest reprezentacją daty lub okresu w czasie, nie jest formatem.
LocalDate
ma toString
metoda, która może być użyta do zrzucenia wartości obiektu, jest to wewnętrzny format używany przez obiekt w celu zapewnienia reprezentacji czytelnej dla człowieka.
Aby sformatować datę, musisz użyć jakiegoś programu formatującego, który pobierze żądany wzorzec i wartość daty i zwróci String
Na przykład następujący 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));
Wyprodukowano...
2005-03-16/16-Mar-05
2005-03-16/16-Mar-05
2005-03-16/16-Mar-05
Zanim się tym zdenerwujesz, oto jak Java Date
działa również.