Tenho um campo imput no JSP onde o usuário informar a data do pedido no formato DD/MM/YYYY … mas tento inserir em um campo do tipo date no MySQL e não consigo devido ao formato. Tentei usar a seguinte função do java abaixo mas ele não formata da forma YYYY/MM/DD que é a do banco.
Tenho um campo imput no JSP onde o usuário informar a data do pedido no formato DD/MM/YYYY … mas tento inserir em um campo do tipo date no MySQL e não consigo devido ao formato. Tentei usar a seguinte função do java abaixo mas ele não formata da forma YYYY/MM/DD que é a do banco.
Como posso fazer para colocar no formato YYYY/MM/DD ??
Vlw…
Como parâmetro do SimpleDateFormat você coloca como está/vai estar a sua String que representa a data. Se no seu formulário você preenche “dd/MM/yyyy” então como parâmetro você também deve colocar isso.
...=newSimpleDateFormat("dd/MM/yyyy");
Só precisa concertar isso.
I
Igor_Franco
Amigos eduardo e thiago, tem oq vc vcs postaram mas nao passa para o formato americano (yyyy/mm/dd). Ai eu do um system.out na variavel date e o resultado q aparece é este:
Fri Jul 02 00:00:00 BRT 34
O q posso fazer?
vlw
J
Java_Man
Igor, vê se isso te ajuda!
importjava.util.Date;publicclassDateTest{publicstaticvoidmain(String[]args){// TODO Auto-generated method stubDated=newDate();System.out.println("Data (java.util.Date): "+d.toString());java.sql.DatesqlDate=newjava.sql.Date(d.getTime());System.out.println("Data (java.sql.Date): "+sqlDate.toString());}}
I
Igor_Franco
Funfou amigo Java Man, mas como posso criar um metodo onde eu recebo como parametro a data no formato brasileiro e retorno no formato americano. A minha ideia e colocar este metodo dentro de uma classe util e chama-lo quando precisar??
Como poderia implementar este metodo??
Vlw.
sf.marcius
o resultado está saindo assim pq vc está imprimindo o objeto date direto com:
System.out.println(date);
O SimpleDateFormat não altera o formato do date. Ele é apenas uma estrutura capaz de criar outro objeto (uma String) que representa o Date passado no formato especificado, ou faz o parse de uma String que representa a data para um objeto do tipo Date.
para pegar a data formatada, faça como o colega eduardognz falou.
se vc quiser que a data ja venha formatada ao se usar System.out.println(date);
sobreescreva o método toString() do Date.
J
Java_Man
Está aí o método desejado. Na verdade você já estava com a faca e o queijo na mão. Só faltou cortar! kkk!
O seu método funfa, mas o problema que quando tento converter o atributo data do meu objeto, q era do tipo String e agora Date, nao consigo. Estou tento desta forma:
Verifiquei aq, e no MySql meu campo data esta como Date q tem o formato americano yyyy/mm/dd, e no meu input do jsp o formado é outro dd/mm/yyyy… mas se eu mudar o tipo de atributo no VO para String pede para eu mudar o tipo de dado do seu metodo… mas nao funfa…
O que posso fazer ?
I
Igor_Franco
Amigo, pensando mais um pouco aq, consegui fazer um metodo q fizesse oq eu queria:
// Converte data do tipo dd/MM/yyyy para yyyy/MM/dd publicstaticStringconverteData(Stringdata)throwsParseException{SimpleDateFormatin=newSimpleDateFormat("dd/MM/yyyy");SimpleDateFormatout=newSimpleDateFormat("yyyy-MM-dd");StringnovaData=out.format(in.parse(data.toString()));returnnovaData;}
Ai na Action chamo e dou um set no atributo do meu objeto: