Problema com Datas

3 respostas
O
E ai pessoal,





Tenho um BD em Access, com uma tabela usuario e um campo "dataNasc" do tipo Data/Hora, acontece que quando abro o BD vejo uma data no seguinte formato "23/04/1999".





E tenho um servlet que apresenta este registro na página, ou seja faço uma busca no banco de dados e mostro a data na página, mais ou menos assim:





stmt = con.createStatement();


rs = stmt.executeQuery("select blablabla…");





String dNasc;


dNasc = rs.getString("dataNasc");





Tudo esta ocorrendo bem, mas quando imprimo a dNasc na tela tenho a seguinte saida:





1999-04-23 00:00:00





E se uso o método:





Date dNasc = null;


dNasc = rs.getDate("dataNasc");





Ocorre um erro de tipos incompatíveis.





Bom, finalizando eu gostaria que o formato data impressa fosse apenas "23/04/1999"e NÃO "1999-04-23 00:00:00",  que no banco de dados está tudo correto e quando recupero a data estou recuperando como String. Porque e como o java formata essa Data ???








Se alguem puder me ajudar eu agradeço !!!





Oswaldo Neto


<a>[email removido]</a>

[ Editado por Oswaldo No dia -1 ]

3 Respostas

O
Ai pessoal, eu mesmo consegui achar uma solução para o meu problema depois de tanto bater a cabeça, ai vai pra quem se interessou!!





Em primeiro lugar como a data esta no formato string então, deve ser convertida para o tipo Date.





Importe:


-----------------------------------------------------





import java.util.Date;


import java.text.SimpleDateFormat;


import java.text.ParseException;





Crie o método


-----------------------------------------------------





public Date StringToDate(String vData) {





SimpleDateFormat formatoData = new SimpleDateFormat("yyyy-MM-dd");





Date dataRetorna = null;





try {


   dataRetorna = formatoData.parse(vData);


}


catch (Exception e) {


  System.out.println(e.toString());


  return null


}


return dataRetorno;


}








Agora passe a data no formato String para o método, que vai retornar uma Data


----------------------------------------------------





Date d = objeto.StringToDate("1999-06-23");





e para colocar a data no formato correto use:


----------------------------------------------------





System.out.println (





d.getDate() + "/" +


(d.getMonth()  + 1) + "/" +


(d.getYear() + 1900)





);








 <img> Se você não entendeu ainda e quer saber como faz mande um e-mail.





Oswaldo Neto


<a>[email removido]</a>
A

Show de bola oswaldo e que atitude legal a sua contribuir para com o pessoal deste conhecimento adquirido através de uma dificuldade encontrada por você.



Um abraço

Dalton

K
Oswaldo,





É mais simples deste jeito:





Locale loc = new Locale("pt","br");


SimpleDateFormat frm = new SimpleDateFormat("dd´/´MM´/´yyyy",loc);





out.println(frm.format((Date)rs.getDate("campodata")));
Criado 25 de junho de 2002
Ultima resposta 25 de jun. de 2002
Respostas 3
Participantes 3