data constante GregorianCalendar
-
06-07-2019 - |
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?
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