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.