Der beste Weg, eine Ganzzahl in einen Monatsnamen in c # umzuwandeln?

123

Gibt es eine beste Möglichkeit, eine Ganzzahl in .net in ihren Monatsnamen umzuwandeln?

Natürlich kann ich eine Datums- / Uhrzeitangabe drehen, um sie zu verknüpfen und den Monatsnamen von dort aus zu analysieren. Das scheint nur eine gigantische Zeitverschwendung zu sein.

Entwicklung von Chris
quelle

Antworten:

20

Warum nicht einfach benutzen somedatetime.ToString("MMMM")?

Leppie
quelle
1
Wenn ich also 1 in Januar verwandeln muss, muss ich eine Datumszeit mit einem beliebigen Jahr und Tag neu festlegen, um nur den Januar zu erhalten?
DevelopingChris
1
Das ist richtig, als Bonus können Sie es in jeder gewünschten lokalisierbaren Sprache haben :)
Leppie
20

Aktualisiert mit dem richtigen Namespace und Objekt:

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

//Correct but keep in mind CurrentInfo could be null
DateTimeFormatInfo.CurrentInfo.MonthNames[index];
Ovidiu Pacurar
quelle
1
Das funktioniert nicht. Nick Berardi gab die richtige Antwort.
Rabe
1
Von jetzt an werde ich versuchen, meine Antworten zuerst zusammenzustellen
Ovidiu Pacurar
Da dies eine alte Frage ist, möchte ich dennoch darauf hinweisen, dass die von Nick Berandi akzeptierte Antwort korrekter ist (zumindest für die Implementierung von Microsoft - nicht sicher über Mono), da die MonthNames-Eigenschaft immer das Array der Monatsnamen klont und macht das Ganze ein bisschen weniger effizient.
AASoft
7

Sie können eine statische Methode aus dem Microsoft.VisualBasicNamespace verwenden:

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

Auf diese Weise wird Ihr Monat anhand seines Namens und nicht anhand einer Ganzzahl angezeigt.

user1534576
quelle
2

Um den abgekürzten Monatswert zu erhalten, können Sie verwenden Enum.Parse();

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

Dies wird als Ergebnis "Jan" erzeugen.

Denken Sie daran, dass dies ein auf Null basierender Index ist.

etw
quelle