Estou com um problema na conversão de string para data que não consigo resolver.
O código é o seguinte:
public void setDado(String dado) {
try {
this.dado = new SimpleDateFormat("dd/MM/yyyy")
.format(new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy").parse(dado));
A string dado possui o valor ‘Wed Jun 01 00:00:00 BRT 2011’.
Já tentei utilizar new SimpleDateFormat(“EEE MMM d HH:mm:ss zzz yyyy”), new SimpleDateFormat(“EEE MMM dd HH:mm:ss zzz yyyy”), new SimpleDateFormat(“EEE MMM d HH:mm:ss z yyyy”) e new SimpleDateFormat(“EEE MMM d HH:mm:ss z yyyy”).
Porque você executa dois formats?
Passa um formato no construtor e depois no format?
Tente passar apenas no construtor e executar o parse e veja o que acontece.
Abraços.
paula1
É pq eu tenho uma string no formato ‘Wed Jun 01 00:00:00 BRT 2011’ e quero no final uma string no formato ‘01/06/2011’.
Então estava tentando criar uma data com o formato “EEE MMM d HH:mm:ss zzz yyyy” e depois, a partir desta data, criar uma outra string no formato ‘dd/MM/yyyy’.
Por isso o format e depois o parse… tem como fazer isso de uma vez só sem ser varrendo e quebrando a string?
Podes pesquisar aqui algo.
Entretanto, vejo que essa sua String vem de um date, perfeito?
Não consegue fazer com que ela já chegue formatada? Como “dd/MM/yyyy” por exemplo.
Abraços.
MaiqueL
importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassMain{publicstaticvoidsetDado(Stringdado){try{dado=newSimpleDateFormat("dd/MM/yyyy").format(newSimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy").parse(dado));}catch(ParseExceptione){// TODO Auto-generated catch blocke.printStackTrace();}System.out.println(dado);}publicstaticvoidmain(String[]args){System.out.println(newDate().toString());setDado(newDate().toString());}}
esse método está funcionando faça o teste aí!!
paula1
Por incrível que pareça não funciona.
Já recompilei, já limpei tmp do jboss… e nada.
Enfim… continuarei na luta! Valeu pela ajuda, povo!
T
tirq
.paula
o que vc quer é converter uma data né
importjava.text.SimpleDateFormat;importjava.util.Date;publicclassMain{publicstaticvoidmain(String[]args){Datedata=newDate();// dataSystem.out.println(data);Stringdp=data.toString();// String da dataSystem.out.println(dp);SimpleDateFormatdf=newSimpleDateFormat("dd/mm/yyyy");System.out.println(df.format(data));// string da data formatadaStringdpal=df.format(data);System.out.println(dpal);}}
teste isso e ve se te ajuda
Edit: comentado pra te ajudar!
paula12 likes
Galera, consegui resolver.
A string era ‘Wed Jun 01 00:00:00 BRT 2011’. Foi preciso forçar o locale do parse para funcionar.
this.dado = new SimpleDateFormat("dd/MM/yyyy")
.format(new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy", Locale.US).parse(dado));
Antes ele só funcionaria se a string fosse ‘Qua Jun 01 00:00:00 BRT 2011’, por exemplo.
Vlw!
livaper
Muitíssimo obrigada .paula , sua solução me salvou!