Mysql
 sql >> Base de données >  >> RDS >> Mysql

Chaîne vers joda LocalDate au format jj-MMM-aa

J'ai donc pris votre code et l'ai exécuté et cela fonctionne bien pour moi...

Je pense que le problème que vous rencontrez est que vous attendez une LocalDate object pour conserver le format avec lequel vous avez analysé l'objet à l'origine, ce n'est pas ainsi que LocalDate fonctionne.

LocalDate est une représentation de date ou de période dans le temps, ce n'est pas un format.

LocalDate a un toString méthode qui peut être utilisée pour vider la valeur de l'objet, il s'agit d'un format interne utilisé par l'objet pour fournir une représentation lisible par l'homme.

Pour formater la date, vous devez utiliser une sorte de formateur, qui prendra le modèle que vous voulez et une valeur de date et renverra une String

Par exemple, le code suivant...

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));

Produit...

2005-03-16/16-Mar-05
2005-03-16/16-Mar-05
2005-03-16/16-Mar-05

Avant de vous fâcher à ce sujet, voici comment Java Date fonctionne aussi.