Така че взех вашия код и го стартирах и той работи добре за мен...
Мисля, че проблемът, който имате, е, че очаквате LocalDate
обект, за да поддържате формата, с който първоначално сте анализирали обекта, това не е как LocalDate
работи.
LocalDate
е представяне на дата или период във времето, не е формат.
LocalDate
има toString
метод, който може да се използва за изхвърляне на стойността на обекта, това е вътрешен формат, използван от обекта за осигуряване на четливо от човека представяне.
За да форматирате датата, трябва да използвате някакъв вид формататор, който ще вземе шаблона, който искате, и стойността на датата и ще върне String
Например следният код...
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));
Произведено...
2005-03-16/16-Mar-05
2005-03-16/16-Mar-05
2005-03-16/16-Mar-05
Преди да се разстроите за това, ето как Java Date
също работи.