2010-07-18 6 views

Répondre

18
// using the current culture - returns "July" for me 
string x = DateTimeFormatInfo.CurrentInfo.GetMonthName(7); 

// using a specific culture - returns "juillet" 
string y = CultureInfo.GetCultureInfo("fr-FR").DateTimeFormat.GetMonthName(7); 
+0

Oui cela a fonctionné – ONYX

+0

C'est la meilleure approche. Mais attention aux cultures qui utilisent un calendrier différent ... – Richard

+0

Très gentil..merci !! – Tiago

3

En utilisant une chaîne de format personnalisé: méthode

string name = new DateTime(2010,7,1).ToString("MMMM"); 
1
private static string GetMonthName(int month, bool abbrev) 

    { 

     DateTime date = new DateTime(1900, month, 1); 

     if (abbrev) return date.ToString("MMM"); 

     return date.ToString("MMMM"); 

    } 
+1

'return new DateTime (1900, month, 1) .ToString (abbrev?" MMM ":" MMMM ");' ferait tout cela avec moins de code. –

2

Utilisez toString() de l'objet DateTime. "MMMM" est le long mois. "MMM" est un code mois court comme août pour août. La bonne chose est de cette façon, vous pouvez aussi gérer les problèmes d'i18n si vous en avez besoin.

var monthID = 7; 
var monthName = new DateTime(2000, monthID, 1).ToString("MMMM"); 
Console.WriteLine(monthName); 
+0

Huh ... il n'y avait pas une seule réponse quand j'ai commencé à taper le mien ... eh bien, au moins, nous sommes tous d'accord. – mattmc3

-3

Dude !!

juste un tableau de chaînes contenant des noms de 12 mois, et les noms [7] l'est.

+2

Non, cela vous donnerait "Août". – Guffa

+0

Et d'ailleurs, pourquoi réinventer la roue? 'DateTimeFormatInfo.CurrentInfo.MonthNames [7]' me donne en effet "August". – LukeH