La meilleure façon de transformer un entier en nom de mois en c #?

123

Existe-t-il un meilleur moyen de transformer un entier en nom de mois en .net?

De toute évidence, je peux faire tourner une date / heure pour la chaîner et analyser le nom du mois à partir de là. Cela semble être une énorme perte de temps.

DévelopperChris
la source

Réponses:

20

Pourquoi ne pas simplement utiliser somedatetime.ToString("MMMM")?

leppie
la source
1
Donc, chaque fois que j'ai besoin de passer du 1er au janvier, j'ai besoin d'une nouvelle date avec une année et un jour arbitraires, afin d'obtenir simplement janvier?
DevelopingChris
1
C'est correct, en prime, vous pouvez l'avoir dans n'importe quelle langue localisable que vous voulez :)
leppie
20

Mis à jour avec l'espace de noms et l'objet corrects:

//This was wrong
//CultureInfo.DateTimeFormat.MonthNames[index];

//Correct but keep in mind CurrentInfo could be null
DateTimeFormatInfo.CurrentInfo.MonthNames[index];
Ovidiu Pacurar
la source
1
Cela ne marche pas. Nick Berardi a fourni la bonne réponse.
raven
1
à partir de maintenant, je vais essayer de compiler mes réponses en premier
Ovidiu Pacurar
Réalisant qu'il s'agit d'une vieille question, je tiens toujours à souligner que la réponse acceptée fournie par Nick Berandi est plus correcte (au moins pour l'implémentation de Microsoft - pas sûr de Mono), car la propriété MonthNames clone toujours le tableau des noms de mois, ce qui rend le tout un peu moins efficace.
AASoft le
7

Vous pouvez utiliser une méthode statique à partir de l' Microsoft.VisualBasicespace de noms:

string monthName = Microsoft.VisualBasic.DateAndTime.MonthName(monthInt, false);
Tokabi
la source
6
DateTime dt = new DateTime(year, month, day);
Response.Write(day + "-" + dt.ToString("MMMM") + "-" + year);

De cette façon, votre mois sera affiché par son nom et non par un entier.

user1534576
la source
2

Pour obtenir la valeur du mois abrégé, vous pouvez utiliser Enum.Parse();

Enum.Parse(typeof(Month), "0");

Cela produira "Jan" comme résultat.

N'oubliez pas qu'il s'agit d'un index de base zéro.

qc
la source