Quelle est la bonne façon d'obtenir le nom complet du mois d'un DateTime
objet?
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:
Utilisez le spécificateur de format personnalisé "MMMM" :
DateTime.Now.ToString("MMMM");
Vous pouvez faire comme mservidio suggéré , ou mieux encore, suivre votre culture en utilisant cette surcharge:
DateTime.Now.ToString("MMMM", CultureInfo.InvariantCulture);
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
DateTime
qui 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 MMM
et MMMM
. Meilleure réponse sur cette page. Gloire.
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
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);
Ses
DateTime.Now.ToString("MMMM");
Avec 4 M
s.
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.
*/