Java Calendrier, l'obtention du mois en cours, la valeur, la clarification nécessaire
Le 1er novembre ..
Calendar.getInstance().get(Calendar.MONTH); //prints 10 (October)
Il ferait de sens si l'on commence par 0, mais il semble que nous n'avons pas
Calendar.getInstance().get(Calendar.JANUARY); //prints 1
Ce qui me manque s'il vous plaît?
Calendar.getInstance().get(Calendar.JANUARY);
est la même deCalendar.getInstance().get(0);
qui est la même deCalendar.getInstance().get(Calendar.ERA);
... d'où 1.- Mois SONT basés sur 0. Votre premier appel est correct pour obtenir le mois en cours (novembre).
Vous devez vous connecter pour publier un commentaire.
Mois en Java Calendrier sont 0-indexé.
Calendar.JANUARY
n'est pas un champ de sorte que vous ne devriez pas être en train de passer à laget
méthode.que d'autres ont dit Calendrier.MOIS retourne int et est zéro indexés.
pour obtenir le mois en cours comme un
String
utilisationSimpleDateFormat.format()
méthodeest en partant de zéro, 10 novembre. À partir de la javadoc;
n'est pas une chose sensée à faire, la valeur de
JANUARY
est 0, ce qui est la même queERA
, vous êtes effectivement en appel;Calendar.get
prend comme argument un de la norme Calendrier des champs, commeYEAR
ouMONTH
pas un nom de mois.Calendar.JANUARY
est 0, ce qui est également la valeur deCalendar.ERA
, doncCalendar.getInstance().get(0)
sera de retour l'époque, dans ce casCalendar.AD
, qui est de 1.Pour la première partie de votre question, remarque que, comme l'a très documenté, mois commence à 0, donc 10 est effectivement novembre.
Utilisation
Calendar.getInstance().get(Calendar.MONTH)+1
pour obtenir mois en cours.