290 votes

Obtenir le nom du mois à partir du numéro du mois

Duplicata possible :
Comment obtenir le nom du mois en c# ?

J'ai utilisé la syntaxe c# suivante pour obtenir le nom du mois à partir du numéro de mois mais j'obtiens August Je veux seulement Aug ..

System.Globalization.DateTimeFormatInfo mfi = new 
System.Globalization.DateTimeFormatInfo();
string strMonthName = mfi.GetMonthName(8).ToString();

Une suggestion...

4 votes

En plus du fait que .GetMonthName(int) ne renvoie pas la chaîne de caractères que vous recherchez, elle fait retourne une chaîne de caractères, donc le .ToString() est inutile.

1 votes

Ne serait-il pas plus simple d'ajouter un .Substring(0,3) ?

0 votes

395voto

Darin Dimitrov Points 528142

Pour les noms de mois courts, utilisez :

string monthName = new DateTime(2010, 8, 1)
    .ToString("MMM", CultureInfo.InvariantCulture);

Pour les noms de mois longs/complets pour la culture espagnole ("es")

string fullMonthName = new DateTime(2015, i, 1).ToString("MMMM", CultureInfo.CreateSpecificCulture("es"));

0 votes

Comment utiliser le code ci-dessus si je veux "août" ? le nom complet du mois ?

26 votes

@User6675636b20796f7521 string monthName = new DateTime(2010, 8, 1) .ToString("MMMM", CultureInfo.InvariantCulture);

0 votes

Ceci : "string s = new DateTime(1958, month, 1).ToString("MMMM", CultureInfo.InvariantCulture()) ;" me donne, "Non-invocable member 'System.Globalization.CultureInfo.InvariantCulture' cannot be used like a method".

323voto

CharithJ Points 15364

Pour les noms de mois abrégés : "Aug".

Méthode DateTimeFormatInfo.GetAbbreviatedMonthName (Int32)

Renvoie le nom abrégé du mois spécifié en fonction de la culture. spécifié, en fonction de la culture associée à l'objet DateTimeFormatInfo actuel.

string monthName = CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(8)

Pour les noms de mois complets : "August"

Méthode DateTimeFormatInfo.GetMonthName (Int32)

Renvoie le nom complet spécifique à la culture du mois spécifié en fonction de la culture associée à l'objet DateTimeFormatInfo actuel. la culture associée à l'objet DateTimeFormatInfo actuel.

string monthName = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(8);

2 votes

GetMonthName renvoie le nom complet du mois. Si vous en avez besoin sous la forme JAN, FEB, etc., vous pouvez utiliser var month = 10 ; string monthName = new DateTime(2014, month, 1).ToString("MMM", CultureInfo.InvariantCulture).ToUpper() ;

3 votes

@DmitryPavlov GetAbbreviatedMonthName() est un meilleur moyen de le faire.

2 votes

DateTimeFormatInfo devrait être DateTimeFormat (au moins dans .net 4.6)

85voto

Lasse V. Karlsen Points 148037

Remplacer GetMonthName avec GetAbbreviatedMonthName de manière à ce qu'il se lise :

string strMonthName = mfi.GetAbbreviatedMonthName(8);

14voto

MrMins Points 5677
System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(4)

Cette méthode renvoie April

Si vous avez besoin d'une langue spéciale, vous pouvez l'ajouter :

<system.web>
    <globalization culture="es-ES" uiCulture="es-ES"></globalization>
     <compilation debug="true"
</system.web>

Ou votre langue préférée.

Par exemple, avec es-ES la culture :

System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(4)

Les retours : Abril

Les retours : Abril (en espagnol, parce que, nous avons configuré la culture as es-ES dans notre webconfig sinon, vous obtiendrez April )

Ça devrait marcher.

13voto

Thili77 Points 668

Vous pouvez l'obtenir de la manière suivante,

DateTimeFormatInfo mfi = new DateTimeFormatInfo();
string strMonthName = mfi.GetMonthName(8).ToString(); //August

Maintenant, prenez les trois premiers caractères

string shortMonthName = strMonthName.Substring(0, 3); //Aug

1 votes

Bien, bien que vous n'ayez pas besoin de ToString() l'appel à GetMonthName(), car il renvoie déjà une chaîne.

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