Selon doc, calendar set () est:
http://docs.Oracle.com/javase/1.5.0/docs/api/Java/util/Calendar.html#set%28int,%20int,%20int%29
set(int year, int month, int date)
Sets the values for the calendar fields YEAR, MONTH, and DAY_OF_MONTH.
code:
Calendar c1 = GregorianCalendar.getInstance();
c1.set(2000, 1, 30); //January 30th 2000
Date sDate = c1.getTime();
System.out.println(sDate);
sortie:
Wed Mar 01 19:32:21 JST 2000
Pourquoi ce n'est pas le 30 janvier ???
1 pour le mois est février. Le 30 février est changé au 1er mars. Vous devez définir 0 pour le mois. Le mieux est d'utiliser la constante définie dans le calendrier:
c1.set(2000, Calendar.JANUARY, 30);
Les mois dans l'objet Calendrier commencent à 0
0 = January = Calendar.JANUARY
1 = february = Calendar.FEBRUARY
La date sélectionnée à l'exemple est intéressante. Exemple de bloc de code:
Calendar c1 = GregorianCalendar.getInstance();
c1.set(2000, 1, 30); //January 30th 2000
Date sDate = c1.getTime();
System.out.println(sDate);
et sortie Wed Mar 01 19:32:21 JST 2000
.
Quand j'ai lu l'exemple pour la première fois, je pense que la sortie est fausse mais c'est vrai :)
Calendar.Month
commence à 0 donc 1 signifie février.