Question

Ok, je veux que mon programme imprime la date: 01/01/2009

Mais voici ce qu'il affiche:

Jeu Jan 01 00:00:00 EST 2009

À partir de ce code

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

Comment puis-je le modifier pour qu'il ne soit imprimé que le 1/1/2009?

Était-ce utile?

La solution

Utilisez 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());
}

Vous appelez implicitement la méthode toString () qui affiche (correctement) le contenu complet.

Au fait, il n’est pas nécessaire de construire une date comme vous le faites. L'appel de getDate () sur un Calendrier renvoie un objet Date .

Autres conseils

Actuellement, le La méthode> Date.toString () est appelée pour afficher la représentation String de la GregorianCalendar instance.

Il faut créer un DateFormat qui produira une représentation String souhaitée. L'objet DateFormat peut être utilisé pour formater une instance Date au format souhaité, à l'aide de l'élément méthode format .

Le moyen le plus simple de réaliser ce que vous souhaitez est d'utiliser le SimpleDateFormat , qui a une constructeur qui prend une chaîne de format pour afficher la Date sous la forme souhaitée.

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

Sortie

1/1/2009
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top