SimpleDateFormat não funciona!

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

[code]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();
    }
}

}[/code]

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)

Até onde eu vi, está funcionando.

Qual resultado você esperava ?

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

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.

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?

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