Comment obtenir le nom complet du mois à partir de DateTime


193

Quelle est la bonne façon d'obtenir le nom complet du mois d'un DateTimeobjet?
par exemple January, December.

J'utilise actuellement:

DateTime.Now.ToString("MMMMMMMMMMMMM");

Je sais que ce n'est pas la bonne façon de procéder.

Réponses:



90

Vous pouvez faire comme mservidio suggéré , ou mieux encore, suivre votre culture en utilisant cette surcharge:

DateTime.Now.ToString("MMMM", CultureInfo.InvariantCulture);

3
C'est chouette, j'ai besoin de me pencher sur ce truc culturel.
Alex Turpin

2
Si ce n'est que le mois qui vous intéresse, DateTime.Today au lieu de DateTime.Now est une simplification supplémentaire. Aucune portion de temps inutile et un peu plus rapide.
OrizG

40

Si vous voulez le mois en cours, vous pouvez utiliser DateTime.Now.ToString("MMMM")pour obtenir le mois complet ou DateTime.Now.ToString("MMM")pour obtenir un mois abrégé.

Si vous avez une autre date pour laquelle vous souhaitez obtenir la chaîne du mois, après son chargement dans un objet DateTime, vous pouvez utiliser les mêmes fonctions pour cet objet:
dt.ToString("MMMM")pour obtenir le mois complet ou dt.ToString("MMM")pour obtenir un mois abrégé.

Référence: Chaînes de format de date et d'heure personnalisées

Alternativement, si vous avez besoin de noms de mois spécifiques à la culture, vous pouvez essayer ceux-ci: DateTimeFormatInfo.GetAbbreviatedMonthName, méthode
DateTimeFormatInfo.GetMonthName, méthode


1
+1 pour avoir mentionné comment le faire à partir d'un DateTimequi n'est PAS DateTime.Now. J'avais pensé que c'était string mon = myDate.Month.ToString("MMM")quand j'ai été tristement déçu de cracher "MMM" dans ma variable de chaîne. Heureux que vous ayez fait l'effort de montrer comment utiliser .ToString("MMM")la date, elle-même, pour obtenir le mois, quand ce n'est pas le cas DateTime.Now. Et comment vous avez expliqué la différence entre MMMet MMMM. Meilleure réponse sur cette page. Gloire.
vapcguy

1
Si ce n'est que le mois qui vous intéresse, DateTime.Today au lieu de DateTime.Now est une simplification supplémentaire. Aucune portion de temps inutile et un peu plus rapide.
OrizG

27

Si vous recevez "MMMM" comme réponse, vous obtenez probablement le mois et vous le convertissez ensuite en une chaîne de format défini.

DateTime.Now.Month.ToString("MMMM") 

affichera "MMMM"

DateTime.Now.ToString("MMMM") 

affichera le nom du mois


16

Vous pouvez utiliser Culture pour obtenir le nom du mois de votre pays comme:

System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("ar-EG");
string FormatDate = DateTime.Now.ToString("dddd., MMM dd yyyy, hh:MM tt", culture);

14

Ses

DateTime.Now.ToString("MMMM");

Avec 4 Ms.


1
Si ce n'est que le mois qui vous intéresse, DateTime.Today au lieu de DateTime.Now est une simplification supplémentaire. Aucune portion de temps inutile et un peu plus rapide.
OrizG

11

Ça devrait être juste DateTime.ToString( "MMMM" )

Vous n'avez pas besoin de tous les extra M.


10
DateTime birthDate = new DateTime(1981, 8, 9);
Console.WriteLine ("I was born on the {0}. of {1}, {2}.", birthDate.Day, birthDate.ToString("MMMM"), birthDate.Year);

/* The above code will say:
"I was born on the 9. of august, 1981."

"dd" converts to the day (01 thru 31).
"ddd" converts to 3-letter name of day (e.g. mon).
"dddd" converts to full name of day (e.g. monday).
"MMM" converts to 3-letter name of month (e.g. aug).
"MMMM" converts to full name of month (e.g. august).
"yyyy" converts to year.
*/

2

Partager la science est beau et dans le plaisir de Dieu

Debug.writeline(Format(Now, "dd MMMM yyyy"))
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.