GregorianCalendar data costante
-
06-07-2019 - |
Domanda
Ok, voglio fare in modo che il mio programma stampi la data: 1/1/2009
Ma questo è ciò che stampa:
Gio 01 gen 00:00:00 EST 2009
Da questo codice
GregorianCalendar startDate = new GregorianCalendar(2009, Calendar.JANUARY, 1);
public void setStart()
{
startDate.setLenient(false);
Date date = new Date(startDate.getTimeInMillis());
System.out.println(date);
}
Come posso cambiarlo in modo che venga stampato solo l'1 / 1/2009?
Soluzione
Usa 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());
}
Stai implicitamente chiamando il metodo toString ()
che sta (correttamente) stampando il contenuto completo.
A proposito, non è necessario costruire una data come stai facendo. La chiamata di getDate ()
su un Calendar
restituisce un oggetto Date
.
Altri suggerimenti
Attualmente, il String
della GregorianCalendar
.
Ciò che deve essere fatto è creare un DateFormat
che produrrà una rappresentazione String
desiderata. L'oggetto DateFormat
può essere utilizzato per formattare un'istanza Date
sulla formattazione desiderata utilizzando metodo format
.
Il modo più semplice per ottenere ciò che si desidera è utilizzare SimpleDateFormat
, che ha una costruttore che accetta una stringa di formato per generare la Date
nella forma desiderata.
Calendar calendar = new GregorianCalendar(2009, Calendar.JANUARY, 1);
DateFormat df = new SimpleDateFormat("M/d/yyyy");
System.out.println(df.format(calendar.getTime()));
Output
1/1/2009