SimpleDateFormat não funciona!

5 respostas
M

Nossa, é até ridículo eu postar essa dúvida aqui... mas fiquei a tarde inteira não encontrei a solução....

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;

public class Main {
    public static void main(String[] args) {
        GregorianCalendar gc = new GregorianCalendar();
        int dia = gc.get(GregorianCalendar.DAY_OF_MONTH);
        int mes = gc.get(GregorianCalendar.MONTH);
        int ano = gc.get(GregorianCalendar.YEAR);

        
        String a = String.valueOf(dia) + "/" + String.valueOf(mes) + "/" + String.valueOf(ano);
        System.out.println("Data em String: " + a);

        Date data;
        try{
            SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
            data = formato.parse(a);
            System.out.println("Data em Date: " + data);
        }catch(ParseException e){
            e.printStackTrace();
        }
    }
}
run:
Data em String: 15/2/2009
Data em Date: Sun Feb 15 00:00:00 BRT 2009
CONSTRUÍDO COM SUCESSO (tempo total: 2 segundos)

5 Respostas

R

Até onde eu vi, está funcionando.

Qual resultado você esperava ?

M

Não teria que ter a seguinte saída: dd/MM/yyyy e não Sun Feb 15 00:00:00 BRT 2009

P

Para imprimir com esse formato, tens de fazer:

GregorianCalendar gc = new GregorianCalendar();  
    SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");  
    System.out.println(formato.format(gc.getTime()));

O print de um objecto Date usa o método toString da classe date, não importa o formato com que a data foi criada.

M

Eu não quero somente imprimir essa data, eu quero é que um objeto do tipo Date tenha o seguinte formato:
dd/MM/yyyy

Isso é possível em um tipo Date?

P

Um objecto do tipo Date não tem um formato associado. Pode ser mostrado com o formato que se quiser.

Criado 15 de março de 2009
Ultima resposta 16 de mar. de 2009
Respostas 5
Participantes 3