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?

¿Fue útil?

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 Se llama al método Date.toString () para mostrar la representación de 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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top