Pergunta

Ok, eu quero fazer o meu programa de imprimir a data: 1/1/2009

Mas isso é o que ele imprime:

Qui Jan 01 00:00:00 EST 2009

A partir deste código

GregorianCalendar startDate = new GregorianCalendar(2009, Calendar.JANUARY, 1);
public void setStart()
{
    startDate.setLenient(false);
    Date date = new Date(startDate.getTimeInMillis());
    System.out.println(date);
}

Como posso alterá-lo para que ele só imprime 1/1/2009?

Foi útil?

Solução

Use SimpleDateFormat :

GregorianCalendar startDate = new GregorianCalendar(2009, Calendar.JANUARY, 1);
public void setStart() {
  startDate.setLenient(false); 
  DateFormat df = new SimpleDateFormat("d/M/yyyy");
  df.format(startDate.getDate());
}

Você está chamando implicitamente o método toString() que é (corretamente) imprimir o conteúdo completo.

A propósito, não há necessidade de construir uma data a maneira que você está fazendo. Chamando getDate() em um Calendar retorna um objeto Date.

Outras dicas

Atualmente, o Date.toString() método está sendo chamado para exibir a representação String do GregorianCalendar exemplo.

O que precisa ser feito é criar uma DateFormat que irão produzir uma representação String que é desejado. O objecto DateFormat podem ser usadas para formatar um exemplo Date para a formatação desejado usando o format método.

A maneira mais simples de conseguir o que se deseja é usar o SimpleDateFormat classe, que tem um construtor que leva uma seqüência de formato para a saída do Date em uma forma desejada.

Calendar calendar = new GregorianCalendar(2009, Calendar.JANUARY, 1);
DateFormat df = new SimpleDateFormat("M/d/yyyy");
System.out.println(df.format(calendar.getTime()));

saída

1/1/2009
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top