Formatar data no padrão dd/MM/yyyy HH:mm:ss

Pessoal tenho que formatar um data no padrão dd/MM/yyyy HH:mm:ss, estou fazendo isso:

SimpleDateFormat fmt = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");  
Date data = fmt.parse("17/12/2007 19:30:20");

Só que o retorno é:

Mon Dec 17 19:30:20 BRST 2007

A hora sai correta, porém a data sai errada, alguém sabe como fazer isso?

Amigo, você está confundindo o objeto com sua representação.

Um “Date”, se você deu uma fuçada no código, é só o número de milissegundos transcorridos desde 01/01/1970, no horário UTC (ou seja, Greenwich). Ele sozinho não tem informação de formatação dentro dele; o método toString só mostra uma forma padrão de visualização, que é o que você está vendo.

Para mostrar do jeito que você quer, use

SimpleDateFormat fmt = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");    
Date data = fmt.parse("17/12/2007 19:30:20"); 
String str = fmt.format(data);   // isto faz com que mostre do jeito que você quer

É realmente fiz confusão das coisas.
Vlw.

[quote=thingol]Amigo, você está confundindo o objeto com sua representação.

Um “Date”, se você deu uma fuçada no código, é só o número de milissegundos transcorridos desde 01/01/1970, no horário UTC (ou seja, Greenwich). Ele sozinho não tem informação de formatação dentro dele; o método toString só mostra uma forma padrão de visualização, que é o que você está vendo.

Para mostrar do jeito que você quer, use

SimpleDateFormat fmt = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); Date data = fmt.parse("17/12/2007 19:30:20"); String str = fmt.format(data); // isto faz com que mostre do jeito que você quer [/quote]

E no caso da minha data ser algo como: Fri Aug 21 17:00:34 ART 2009
Como faz para formatar no padrão dd/MM/yyyy HH:mm:ss ?

[quote=Sagan][quote=thingol]Amigo, você está confundindo o objeto com sua representação.

Um “Date”, se você deu uma fuçada no código, é só o número de milissegundos transcorridos desde 01/01/1970, no horário UTC (ou seja, Greenwich). Ele sozinho não tem informação de formatação dentro dele; o método toString só mostra uma forma padrão de visualização, que é o que você está vendo.

Para mostrar do jeito que você quer, use

SimpleDateFormat fmt = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); Date data = fmt.parse("17/12/2007 19:30:20"); String str = fmt.format(data); // isto faz com que mostre do jeito que você quer [/quote]

E no caso da minha data ser algo como: Fri Aug 21 17:00:34 ART 2009
Como faz para formatar no padrão dd/MM/yyyy HH:mm:ss ?[/quote]
A linha

String str = fmt.format(data);

Formata a para o jeito que você quer, a representação Fri Aug 21 17:00:34 ART 2009 é apenas uma formatação padrão do toString como o amigo falou acima…