Amigos,
como converter uma String do tipo “dd/mm/yyyy” em um tipo java.sql.Date no mesmo formato para inserção no banco?
Grato
Amigos,
como converter uma String do tipo “dd/mm/yyyy” em um tipo java.sql.Date no mesmo formato para inserção no banco?
Grato
algo assim:
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
java.sql.Date data = new java.sql.Date(format.parse(dataStr).getTime());
Abraço,
Armando
DateFormat formatter = new SimpleDateFormat("MM/dd/yy");
Date date = (Date)formatter.parse("01/29/02");
/**
* Converte uma String para um objeto Date. Caso a String seja vazia ou nula,
* retorna null - para facilitar em casos onde formulários podem ter campos
* de datas vazios.
* @param data String no formato dd/MM/yyyy a ser formatada
* @return Date Objeto Date ou null caso receba uma String vazia ou nula
* @throws Exception Caso a String esteja no formato errado
*/
public static Date formataData(String data) throws Exception {
if (data == null || data.equals(""))
return null;
Date date = null;
try {
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
date = (java.util.Date)formatter.parse(data);
} catch (ParseException e) {
throw e;
}
return date;
}
vc pode usar esse código que funciona
Caros,
obrigado pelas respostas,mas acho que os exemplos dos colegas são para converter String em java.util.Date,mas o q preciso é do tipo Date para inseri-lo em um banco de dados … 
Grato
Bom, nem tudo na vida é de mão beijada, portanto não vá se acostumando, afinal de contas um pouco de esforço não faz mal a ninguém, mas vai lá.
Utilizando o método do colega aangreen
/**
* Converte uma String para um objeto Date. Caso a String seja vazia ou nula,
* retorna null - para facilitar em casos onde formulários podem ter campos
* de datas vazios.
* @param data String no formato dd/MM/yyyy a ser formatada
* @return Date Objeto Date ou null caso receba uma String vazia ou nula
* @throws Exception Caso a String esteja no formato errado
*/
public static java.sql.Date formataData(String data) throws Exception {
if (data == null || data.equals(""))
return null;
java.sql.Date date = null;
try {
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
date = new java.sql.Date( ((java.util.Date)formatter.parse(data)).getTime() );
} catch (ParseException e) {
throw e;
}
return date;
}
Bom, nem tudo na vida é de mão beijada, portanto não vá se acostumando, afinal de contas um pouco de esforço não faz mal a ninguém
Calma lá colega…Alem de nao ter me entendido bem,acho que você escreveu bobagem…
Eu agradeci o apoio,mas disse q apenas que não se encaixava no que eu queria…
E eu sei que nada vem de graça,pois procurei exaustivamente em fóruns pela web afora,e recorri em ultimo caso ao GUJ,onde supostamente existem pessoas entendedoras da tecnologia
Agradeço novamente a todas as respostas
Rafael Roque
SCJP 1.4
SCWCD.14
Devia pelo menos ter lido atentamente todas as respostas… eu já tinha respondido o que você queria.
Falou,
Armando
Mas quanta agressividade…
calm down,boys…
e,pela terceira vez:OBRIGADO A TODOS OS QUE RESPONDERAM
Abraços
Rafael Roque
Acho que entendi o que o cara realmente quer!
Tava procurando a mesma coisa, e ao ver o comentário do pessoal de cima, entendi como o raf4ever não entendeu o exemplo do pessoal.
O que deve estar acontecendo é: o cara estar tentando pegar dados do banco de dados e não saber como jogar eles para String e usar o SimpleDateFormat.
Date databanco= new Date();
databanco=rs.getDate(8); // pegando do Result Set
SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
this.setData(formatador.format(databanco)); // seta a data que vai para o formulário.
Se não for isso o raf4ever que não sabe o que quer. Pela forma que perguntou é exatamente o que o aangreen colocou.
Bom… não sei não… acho que o raf4ever tem uma string no formato dd/mm/yyyy e quer inseri-la no BD, no formato Date.
Bom, para inserir no BD, você não precisa converter a sua string para Date, pode simplesmente inseri-la no BD, usando algum método do próprio BD:
Oracle:
String data = "15/08/2006";
String sql = "Insert into tabela (campo_date) values to_date("'+data+'",'dd/mm/yyyy')";
stmt.execute(sql);
O stmt é um objeto Statement. Para outros BDs, pesquise 
algo assim:SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy"); java.sql.Date data = new java.sql.Date(format.parse(dataStr).getTime());Abraço,
Armando
Pega uma String com uma data tipo : “25/05/1985”
E converte pro formato SQL : 1985-05-25
Valeu
/** * Converte uma String para um objeto Date. Caso a String seja vazia ou nula, * retorna null - para facilitar em casos onde formulários podem ter campos * de datas vazios. * @param data String no formato dd/MM/yyyy a ser formatada * @return Date Objeto Date ou null caso receba uma String vazia ou nula * @throws Exception Caso a String esteja no formato errado */ public static Date formataData(String data) throws Exception { if (data == null || data.equals("")) return null; Date date = null; try { DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); date = (java.util.Date)formatter.parse(data); } catch (ParseException e) { throw e; } return date; }vc pode usar esse código que funciona
Estou usando esse método mas dá um erro. Eclipse acusa erro. Tenho que mudar o tipo do método ou mudar o retorno. Alguém pode dar uma luz ai ?
Abraço!
Você conseguiu resolver o seu problema?
Eu testei esse método e funciona perfeitamente.
Sim, consegui resolver o problema.
Vc quer insererir em qual base de dados?
Se oracle vc pode converter usando o TO_DATE; se SQL Server use CONVERT.
ORACLE - http://www.techonthenet.com/oracle/functions/to_date.php
SQL SERVER - http://msdn.microsoft.com/en-us/library/ms187928.aspx
Bom… pessoal, agradeço a todos, pq a minha duvida era exatamente o que o pessoal entendeu primeiro converter “01\08\2010” para java.util.Date …
como faço para o usuário escrever a data e ir logo formatando pra ele ?
exemplo:
[color=orange]"04/"
"04/11/"
"04/11/2010"[/color]
private void jFormattedTextFieldDataKeyPressed(java.awt.event.KeyEvent evt) {
String dth = jFormattedTextFieldData.getText();
if (dth.length() == 2) {
jFormattedTextFieldData.setText(dth + "/");
} else if (dth.length() == 5) {
jFormattedTextFieldData.setText(dth + "/");
}
}
tópico errado : )
cara... tenso, tentei assim:
SimpleDateFormat formataData = new SimpleDateFormat("dd/MM/yyyy");
try {
//String data = formataData.format(dtMatricula);
Date dataCerta = (Date) formataData.parse(dtMatricula);
System.out.println(dataCerta);
aluno.setDataMatricula(dataCerta);
} catch (ParseException e) {
e.printStackTrace();
}
mas no syso vem assim: Thu Jan 31 00:00:00 BRST 2013
o q estou fazendo de errado?
preciso de um objeto do tipo Date pra enviar pro meu método bean
A saída do System.out.println invoca o método toString do objeto passado como parâmetro.
Isso implica em, se tratando de um objeto da Classe java.util.Date, ter uma saída como a que você se refere, mas, isso não significa que não seja um objeto de Date.
Aliás, a forma mais adequada de checar é como está fazendo aqui
aluno.setDataMatricula(dataCerta);
Desde que, o método setDataMatricula espere um objeto de java.util.Date.
Uma outra forma é utilizar a comparação com instanceof
if(dataCerta instanceof java.util.Date){
System.out.println("Nada errado aqui");
}
Entendeu?
private Date dataMatricula;
public void setDataMatricula(Date dataMatricula) {
this.dataMatricula = dataMatricula;
}
import java.util.Date;
mas na jsp aparece o formato q mencionei
galera bom dia, preciso de mudar a data ela está vindo assim
2013-05-07T10:25:06
preciso que ela fique assim
07/05/2013 10:25:06