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.

Antworten:



20

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


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];

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);

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.


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.