Mysql
 sql >> Database >  >> RDS >> Mysql

Stringa in joda LocalDate nel formato gg-MMM-aa

Quindi ho preso il tuo codice e l'ho eseguito e funziona bene per me...

Il problema, credo, che stai riscontrando è che ti aspetti un LocalDate oggetto per mantenere il formato con cui hai originariamente analizzato l'oggetto, non è così che LocalDate funziona.

LocalDate è una rappresentazione di una data o di un periodo, non è un formato.

LocalDate ha un toString metodo che può essere utilizzato per scaricare il valore dell'oggetto, questo è un formato interno utilizzato dall'oggetto per fornire una rappresentazione leggibile dall'uomo.

Per formattare la data, devi usare una sorta di formattatore, che prenderà lo schema desiderato e un valore di data e restituirà una String

Ad esempio, il codice seguente...

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

Prodotto...

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

Prima che ti arrabbi per questo, ecco come Java Date funziona ugualmente.