Boa tarde a todos.
Estou com problema que a principio me parecia simples mas agora não consigo resolver.
Tenho uma String data = “29/09/2009 13:05:35” e quero passa-la para java.sql.Date neste formato 2009-09-29 13:05:35. Mas não consigo fazer o parse com as horas só a data. Segue o codigo abaixo
private java.sql.Date getDateAsSqlDate(String date,String formato) {
java.sql.Date dt = null;
try {
LocaleFormatter formatter = new LocaleFormatter("PT","BR",formato,"HH:mm:ss");
dt = formatter.dateParse(date,dateFormats[i]);
} catch (Exception e) {
log4j.error("[FileProcessor] - getDateAsSqlDate() format="+dateFormats[i], e);
dt = null;
}
return dt;
}
Tente isso:
SimpleDateFormat sdfAntigo = new SimpleDateFormat("yyyy/mm/dd hh:mm:ss");
SimpleDateFormat sdfNovo = new SimpleDateFormat("yyyy-MM-dd - hh:mm:ss");
String dataNaoFormatada = "18/11/2009 12:00:00";
System.out.println("" + sdfNovo.format(sdfAntigo.parse(dataNaoFormatada)));
Veja se funciona…
java.sql.Date não tem um componente de tempo. Você está querendo o java.sql.Timestamp
public static Date formataStringToDate(String data, String formato) {
SimpleDateFormat sdf = new SimpleDateFormat(formato);
Date dataHe = null;
try {
dataHe = sdf.parse(data);
} catch (ParseException e) {
e.printStackTrace();
}
return dataHe;
}
Ex.
formataStringToDate(getData(), "dd/MM/yyyy");
Eu uso isso normalmente
Bom dia a todos.
Desculpem a demora em responder o tópico mas fiquei meio ocupado por aqui. Obrigado a todos pelo auxilio, agora sim ta tudo funcionando direitinho. O Bruno tinha razão o java.sql.Date não tem componente de tempo, e eu quebrando a cabeça pra descubrir isso… isso que da não ler a documentação da classe…mas uma que eu aprendo.rsrsrs. Bom utilizei o java.sql.Timestamp e o SimpleDateFormat para o formato e ficou tudo ok. Valeu pela ajuda. As vezes a resposta esta na nossa cara e a gente não vê. Ainda bem que existe o GUJ…rsrsrsrs . Falo galera…boa semana a todos…
1 curtida