sql >> Databasteknik >  >> RDS >> Mysql

Sträng till joda LocalDate i formatet dd-MMM-åå

Så jag tog din kod och körde den och den fungerar bra för mig...

Problemet, tror jag, du har är att du förväntar dig en LocalDate objekt för att behålla formatet som du ursprungligen analyserade objektet med, det är inte hur LocalDate fungerar.

LocalDate är en representation av datum eller tidsperiod, det är inte ett format.

LocalDate har en toString metod som kan användas för att dumpa objektets värde, det är ett internt format som används av objektet för att ge en läsbar representation för människor.

För att formatera datumet måste du använda någon form av formaterare, som tar det mönster du vill ha och ett datumvärde och returnerar en String

Till exempel, följande kod...

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

Producerad...

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

Innan du blir upprörd över detta, så här är Java Date fungerar också.




  1. Hur man tar bort dubbletter i SQL

  2. Oracle PL/SQL:Dynamiskt SQL-exempel med Execute Immediate

  3. Hur exporterar man en mysql-databas med kommandotolken?

  4. Använd APP_NAME() för att hämta applikationsnamnet för den aktuella sessionen i SQL Server