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

Streng til joda LocalDate i formatet dd-MMM-åå

Så jeg tog din kode og kørte den, og den fungerer fint for mig...

Problemet, tror jeg, du har, er, at du forventer en LocalDate objekt for at bevare det format, som du oprindeligt parsede objektet med, det er ikke sådan LocalDate virker.

LocalDate er en repræsentation af dato eller periode i tid, er det ikke et format.

LocalDate har en toString metode, som kan bruges til at dumpe værdien af ​​objektet, det, dette er et internt format, der bruges af objektet til at give en menneskelig læsbar repræsentation.

For at formatere datoen skal du bruge en form for formater, der tager det ønskede mønster og en datoværdi og returnerer en String

For eksempel følgende kode...

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

Produceret...

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

Før du bliver ked af dette, er det sådan her Java Date virker også.




  1. Sådan sikkerhedskopieres en SQL Server-database ved hjælp af T-SQL

  2. Fejl under forsøg på at hente tekst for fejl ORA-01804

  3. MySQL højt CPU-forbrug

  4. Hvordan undslipper man bogstaveligt procenttegn, når NO_BACKSLASH_ESCAPES-indstillingen er aktiveret?