sql >> Base de Datos >  >> RDS >> Mysql

Cadena a joda LocalDate en formato de dd-MMM-yy

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.