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 ?
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 ?
SimpleDateFormat dateFormat = new SimpleDateFormat( "LLLL", Locale.getDefault() );
dateFormat.format( date );
Pour certaines langues (par exemple le russe), c'est la seule façon correcte d'obtenir les noms de mois autonomes.
C'est ce que vous obtenez, si vous utilisez getDisplayName
de la Calendar
o DateFormatSymbols
pour le mois de janvier :
(ce qui est correct pour une chaîne de date complète : " 10 , 2014 ")
mais dans le cas d'un nom de mois autonome, on s'attendrait à ce qu'il y en ait un :
Que diriez-vous d'utiliser Joda-Time . Il s'agit d'une bien meilleure API de date et d'heure avec laquelle travailler. January
signifie janvier ici. Ce n'est pas comme le calendrier, qui utilise 0-based
pendant des mois).
Vous pouvez utiliser AbstractDateTime#toString( pattern )
pour formater la date dans le format spécifié :
DateTime date = DateTime.now();
String month = date.toString("MMM");
Si vous voulez un nom de mois pour un numéro de mois particulier, vous pouvez le faire comme suit :
int month = 3;
String monthName = DateTime.now().withMonthOfYear(month).toString("MMM");
L'approche ci-dessus utilise le Locale par défaut de votre JVM pour la langue du nom du mois. Vous devez plutôt spécifier un objet Locale.
String month = date.toString( "MMM", Locale.CANADA_FRENCH );
Month::getDisplayName
Depuis Java 8, utilisez l'option Month
enum. Le site getDisplayName
localise automatiquement le nom du mois.
Passez :
TextStyle
pour déterminer la longueur ou l'abréviation.Locale
pour spécifier le langage humain utilisé dans la traduction, ainsi que les normes culturelles utilisées pour les abréviations, la ponctuation, etc.Ejemplo:
public static String getMonthStandaloneName(Month month) {
return month.getDisplayName(
TextStyle.FULL_STANDALONE,
Locale.getDefault()
);
}
C'est peut-être une vieille question, mais pour obtenir le nom du mois quand on connaît les indices, j'ai utilisé
String month = new DateFormatSymbols().getMonths()[monthNumber - 1];
ou pour les noms courts
String month = new DateFormatSymbols().getShortMonths()[monthNumber - 1];
Veuillez noter que votre monthNumber
commence à compter à partir de 1 alors que n'importe quelle méthode ci-dessus renvoie un tableau, vous devez donc commencer à compter à partir de 0.
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.