111 votes

Comment puis-je obtenir le nom du mois dans le calendrier ?

Y a-t-il un oneliner pour obtenir le nom du mois quand on le connaît :

int monthNumber  = calendar.get(Calendar.MONTH)

Ou quel est le moyen le plus simple ?

212voto

PermGenError Points 26936

Vous pouvez le faire en utilisant SimpleDateFormat qui est destiné à formater les dates et les heures :

Calendar cal = Calendar.getInstance();
System.out.println(new SimpleDateFormat("MMM").format(cal.getTime()));

103voto

subodh Points 3042
String getMonthForInt(int num) {
    String month = "wrong";
    DateFormatSymbols dfs = new DateFormatSymbols();
    String[] months = dfs.getMonths();
    if (num >= 0 && num <= 11) {
        month = months[num];
    }
    return month;
}

83voto

sandalone Points 8326

Aussi simple que cela

mCalendar = Calendar.getInstance();    
String month = mCalendar.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.getDefault());

42voto

Terry Chern Points 685

C'est la solution que j'ai trouvée pour un projet de classe :

public static String theMonth(int month){
    String[] monthNames = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
    return monthNames[month];
}

Le numéro que vous entrez provient d'un Calendar.MONTH appeler.

40voto

Eng. Samer T Points 673

Si vous avez une interface multi-langue, vous pouvez utiliser getDisplayName pour afficher le nom du mois avec contrôle de la langue d'affichage.

Voici un exemple d'affichage du nom du mois en anglais, français, arabe et arabe dans un pays spécifique comme "Syrie" :

Calendar c = Calendar.getInstance();
System.out.println(c.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.ENGLISH ) );
System.out.println(c.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.FRANCE ) );
System.out.println(c.getDisplayName(Calendar.MONTH, Calendar.LONG, new Locale("ar") ) );
System.out.println(c.getDisplayName(Calendar.MONTH, Calendar.LONG, new Locale("ar", "SY") ) );
System.out.println(c.getTime().toString());

Le résultat est :

January
janvier

Sat Jan 17 19:31:30 EET 2015

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X