Formatação de datas usando GregorianCalendar

Preciso pegar a data atual do sistema.Estou usando GregorianCalendar hoje=new GregorianCalendar()isso funciona de certa forma,porem quando eu imprimo essa data é isso que aparece[quote]java.util.GregorianCalendar[time=1336593424261,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id=“America/Sao_Paulo”,offset=-10800000,dstSavings=3600000,useDaylight=true,transitions=129,lastRule=java.util.SimpleTimeZone[id=America/Sao_Paulo,offset=-10800000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=9,startDay=15,startDayOfWeek=1,startTime=0,startTimeMode=0,endMode=3,endMonth=1,endDay=15,endDayOfWeek=1,endTime=0,endTimeMode=0]],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=1,YEAR=2012,MONTH=4,WEEK_OF_YEAR=20,WEEK_OF_MONTH=2,DAY_OF_MONTH=9,DAY_OF_YEAR=130,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=4,HOUR_OF_DAY=16,MINUTE=57,SECOND=4,MILLISECOND=261,ZONE_OFFSET=-10800000,DST_OFFSET=0][/quote]Usando .getTime() na hora da impresão as vezes funciona e outras não.Não entendi o pq disso.Se eu criar um a data passando como parâmetro ano,mês e dia dessa forma:GregorianCalendar data=new GregorianCalendar(2012,4,21);funciona normalmente a impressão.Mas quando crio a data sem argumentos pra pegar a data atual ele vem com essa data com muitas outras informações irrelevantes.Gostaria de pegar apenas ano,mês e dia como nesse outro caso.Tem como criar um formatador ou uma outra forma de pegar a data do sistema?

Você pode formatar a sua data da seguinte maneira:

SimpleDateFormat dataFormatada = new SimpleDateFormat("dd/MM/yyyy"); System.out.println(dataFormatada.format(hoje.getTimeInMillis()));

Pense na classe Calendar (e suas subclasses) como uma calculadora de datas. Você usa Calendar somente se você precisa de manipulações como somar dias, meses, e coisas do tipo, inclusive diferenças de fuso horário.

Para representar uma data específica você deve usar a classe java.util.Date. Criando um objeto com new Date() você já obtém a data atual. Para obter uma String formatada de data você deve usar a classe DateFormat, que converte uma data em String de acordo com o formato que você específica.

[quote=rmendes08]Pense na classe Calendar (e suas subclasses) como uma calculadora de datas. Você usa Calendar somente se você precisa de manipulações como somar dias, meses, e coisas do tipo, inclusive diferenças de fuso horário.

Para representar uma data específica você deve usar a classe java.util.Date. Criando um objeto com new Date() você já obtém a data atual. Para obter uma String formatada de data você deve usar a classe DateFormat, que converte uma data em String de acordo com o formato que você específica.[/quote]

Só observando, vale ficar esperto com a classe Date porque vários métodos dela (quase todos) estão deprecated, inclusive alguns de seus construtores.

No caso precisa ser especificamente GregorianCalendar por teimosia do professor.
Vou tentar a dica do felipeaps.Vlew