e o usuario digita um data no formato: dd/MM/yyyy pego esta data como uma String… depois tento converter para java.sql.Date (NAO CONSIGO FAZER ESTA CONVERSÃO) para salvar o banco de dados
O outro problema é que na hora de salvar no mysql ele utiliza outro formato(yyyy/MM/dd)
Bom vc pega dd/mm/yyyy em uma variavel string? se for faça assim:
// vamos quebrar aqui a sua dataString[]data="01/01/2007".split("/");// agora vamos converter pra longintano=Integer.parseInt(data[2])-1900;intmes=Integer.parseInt(data[1]);intdia=Integer.parseInt(data[0]);// agora é só instanciar a Date de java.sqljava.sql.DatenewDate=newjava.sql.Date(ano,mes,dia);// bom uso da sua variavel Date no formato sqlSystem.out.println(newDate);
se entendi bem essa era sua duvida…
espero ter ajudado… no mais… posta ai…
[]'s
Geraldo Barboza
N
NewbieJavaPJ
Desculpem minha ignorância. Mas esse código funciona mesmo?
O que é esse .split("/") ?
e int ano = Integer.parseInt(data[2]) - 1900; Ele não vai pegar somente o valor contido na terceira posição do array? E porque diminuir de 1900?
E um objeto do tipo java.sql.Date pode ser criado recebendo 3 números inteiros na sua construção?
S
SilvioConstantinoPJ
Opa tenta assim
Date minhaData = new Date();
long mili = minhaData.getTime();
java.sql.Date dataSQL = new java.sql.Date(mili);
Ai é só salvar a data sql.[/code]
J
jaireltonPJ
Você não precisa se preocupar com formato de data ao salvar em um banco de dados, o driver já cuidará desses detalhes pra você.
Pra formatar a data pra exibir, é só usar um SimpleDateFormat:
Pra criar um java.util.Date a partir de uma String:
SimpleDateFormatformatador=newSimpleDateFormat("dd/MM/yyyy");Stringstr="09/01/2007";Datedata=formatador.parse(str);//salvarnobancoPreparedStatementstmt=conexao.prepareStatement("insert into tabela(nome, campo_data) values (?, ?)");stmt.setString(1, "Jair");stmt.setDate(2, new java.sql.Date(data.getTime()));