Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

String para joda LocalDate no formato de dd-MMM-aa


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.