Fecha constante del calendario gregoriano
-
06-07-2019 - |
Pregunta
Ok, quiero que mi programa imprima la fecha: 1/1/2009
Pero esto es lo que imprime:
Jue 01 de enero 00:00:00 EST 2009
De este 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);
}
¿Cómo puedo cambiarlo para que solo se imprima el 1/1/2009?
Solución
Utilice 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());
}
Estás llamando implícitamente al método toString ()
que está (correctamente) imprimiendo el contenido completo.
Por cierto, no hay necesidad de construir una fecha como lo estás haciendo. Llamar a getDate ()
en un Calendar
devuelve un objeto Date
.
Otros consejos
Actualmente, el String
de la GregorianCalendar
instancia.
Lo que hay que hacer es crear un DateFormat
que producirá una representación de String
que se desea. El objeto DateFormat
se puede usar para formatear una instancia de Date
con el formato deseado usando método format
.
La forma más sencilla de lograr lo que se desea es utilizar SimpleDateFormat
, que tiene una constructor que toma una cadena de formato para generar la Fecha
en la forma deseada.
Calendar calendar = new GregorianCalendar(2009, Calendar.JANUARY, 1);
DateFormat df = new SimpleDateFormat("M/d/yyyy");
System.out.println(df.format(calendar.getTime()));
Salida
1/1/2009