Formatação de datas

7 respostas
FabricioPJ

Olá a todos.

Estou tentando desenvolver uma aplicação para um registro simples de ponto, mas como estou muuuito enferrujado em Java, to com uns probleminhas para formatar datas. O código é o seguinte:

String entrada = "01/10/2012 09:50:00"; Date d1 = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse(entrada); System.out.println("D1: " + d1.toString());

Eu quero que saia da seguinte forma: dd/mm/yyyy hh24:mi:ss, mas na verdade está saindo da seguinte forma: Mon Oct 01 09:50:00 BRT 2012 (no output do Netbeans 7.1)

Onde estou errando?

Grato pela atenção de todos.

7 Respostas

Rodrigo_Sasaki

o toString do Date não imprime formatado. você tem que imprimir o retorno do método format.

Marlon_Meneses
System.out.println("D1: " + new SimpleDateFormat("dd/MM/yyyy k:mm:ss").format(new Date()));
RafaelCassau
System.out.println(new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new Date()));

Caso seu problema tenha sido solucionado, favor alterar o titulo do tópico para [RESOLVIDO]

FabricioPJ

Opa, já melhorou, mas ainda não ta 100%. O Java não está respeitando a mascara de formatação:

String entrada = "01/10/2012 09:50:00"; System.out.println("D1: " + new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(d1));

Com o código acima, o output é o seguinte: 10/01/2012 09:50:00

Ele inverte o dia pelo mês…

Agradeço mais uma vez a atenção de todos.

RafaelCassau

FabricioPJ isso pode ser porque a hora do sistema operacional está padrão US não tenho permissão para fazer esse teste aqui porem esse fonte pode resolver, faz um teste ae e depois posta o resultado.

System.out.println(new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new GregorianCalendar(new Locale("BR")).getTime()));
pmlm

FabricioPJ:
Opa, já melhorou, mas ainda não ta 100%. O Java não está respeitando a mascara de formatação:

String entrada = "01/10/2012 09:50:00"; System.out.println("D1: " + new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(d1));

Com o código acima, o output é o seguinte: 10/01/2012 09:50:00

O que é d1?

Rodrigo_Sasaki

No primeiro post dele ele cria um Date d1 que é gerado a partir da String entradaDate d1 = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse(entrada); Acho que ele só omitiu a linha, mas realmente ficou confuso

Criado 1 de outubro de 2012
Ultima resposta 2 de out. de 2012
Respostas 7
Participantes 5