Próbuję przekonwertować wartość ciągu przechowywaną w bazie danych, na przykład „2012-01-20”, aby miała format 20 stycznia 2012 r.
Widziałem kilka przykładów, ale używają Date
który współpracuje z SimpleDateFormat
.
Na przykład tutaj jest jeden sposób, który próbowałem, ale „próbowanie” zawsze kończy się niepowodzeniem, a wynik jest zerowy
DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
Date convertedDate=null;
try {
convertedDate = df.parse(datePlayed);
} catch(ParseException e){
e.printStackTrace();
}
Odpowiedzi:
12 dla odpowiedzi № 1Krótko mówiąc, nie używasz odpowiedniego formatu do parsowania. Musisz użyć dwa DateFormat
instancje; jeden do analizowania, a drugi do formatowania.
DateFormat parser = new SimpleDateFormat("yyyy-MM-dd");
DateFormat formatter = new SimpleDateFormat("MMM dd, yyyy");
Date convertedDate = parser.parse(datePlayed);
String output = formatter.format(convertedDate);
1 dla odpowiedzi nr 2
Date da = new Date();
SimpleDateFormat ft = new SimpleDateFormat("E, dd/MM/yyyy !");
System.out.println("Update : " + ft.format(da));
Możesz zmienić swój styl daty na: E, dd/MM/yyyy !
Powodzenia !
0 dla odpowiedzi № 3
Jeśli data zostanie odczytana z bazy danych, zapiszto jako java.sql.Date. Możesz wtedy użyć SimpleDateFormat, może po konwersji do java.util.Date. Z obiektu ResultSet można wyodrębnić Daty.
Jeśli chodziło ci o to, że otrzymałeś datę w tekście wyodrębnioną z bazy danych przez kogoś innego i utknąłeś z nią. Spróbuj użyć:
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
df.setLenient(true);
convertedDate = df.parse(datePlayed.trim() );
Spróbuj także wyświetlić tekst, który analizujesz przed analizą, aby upewnić się, że wartość datePlayed jest zgodna z oczekiwaniami. Z parseInt
, dodatkowe spacje przed lub po danych spowodują błąd, więc wywołanie trim()
usuwa dodatkowe spacje.