Sto provando a convertire una stringa di data in un oggetto data in java indipendentemente dal formato di data di sistema corrente. Perché voglio ottenere il mio formato di data personalizzato da memorizzare nel database. Quello che segue è il mio codice e per favore mi consigli il modo.Come convertire String to Date in java qualunque sia il formato di sistema è
public static String dateToString(String date){
if(date.equals("")) return "";
if(date == null || date.length() == 0){
return "";
}
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
try {
Date l_date = format.parse(date);
Calendar calendar = Calendar.getInstance();
calendar.setTime(l_date);
String year = String.format("%04d", calendar.get(Calendar.YEAR));
String month = String.format("%02d", calendar.get(Calendar.MONTH));
String day = String.format("%02d", calendar.get(Calendar.DATE));
return year + month + day;
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "";
}
}
Per SimpleDateFormat, può solo analizzare il formato che ho sentito codificato.
dateToString("16/04/2015");
Può convertire per codice sopra. Ma, quando provo con il seguente formato
dateToString("Thursday, April 16, 2015");
vado Data di analizzarlo: "Giovedi, 16 mese di aprile, 2015" errore.
Usa 'return new SimpleDateFormat ("aAAAMMGG") formato (calendar.getTime());.' come mese nel calendario viene conteggiato da 0. –
non si basano su stringhe per comunicare con il tuo database. Per i valori di data-ora, utilizzare oggetti data-ora. A partire da JDBC 4.2 e versioni successive, utilizzare le classi java.time con 'PreparedStatement :: setObject' e' ResultSet :: getObject'. –