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.

shA.t
la source

Réponses:

285

Utilisez le spécificateur de format personnalisé "MMMM" :

DateTime.Now.ToString("MMMM");
mservidio
la source
3
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
6
Étonnamment, je reçois le texte même "MMMM"
Chagbert
90

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

DateTime.Now.ToString("MMMM", CultureInfo.InvariantCulture);
emp
la source
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

Jeffrey Blake
la source
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

Sabarish Ramachandran
la source
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);
Yehia Elhawary
la source
14

Ses

DateTime.Now.ToString("MMMM");

Avec 4 Ms.

Alex Turpin
la source
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.

Stefan H
la source
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.
*/
Madolite
la source
2

Partager la science est beau et dans le plaisir de Dieu

Debug.writeline(Format(Now, "dd MMMM yyyy"))
Fajarsoft
la source