Konvertieren Sie month int in month name


81

Ich habe einfach versucht, die DateTimeStruktur zu verwenden, um eine Ganzzahl zwischen 1 und 12 in einen abgekürzten Monatsnamen umzuwandeln.

Folgendes habe ich versucht:

DateTime getMonth = DateTime.ParseExact(Month.ToString(), 
                       "M", CultureInfo.CurrentCulture);
return getMonth.ToString("MMM");

Ich erhalte jedoch eine FormatExceptionin der ersten Zeile, da die Zeichenfolge nicht gültig ist DateTime. Kann mir jemand sagen, wie das geht?

Antworten:


139
CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(1);

Sehen Sie hier für weitere Details.

Oder

DateTime dt = DateTime.Now;
Console.WriteLine( dt.ToString( "MMMM" ) );

Oder wenn Sie den kulturspezifischen abgekürzten Namen erhalten möchten .

GetAbbreviatedMonthName(1);

Referenz


8
GetAbbreviatedMonthName()scheint angemessen.
Bala R

Was ist das Gegenteil davon? Geben Sie den Monatsnamen ein und erhalten Sie die Nummer zurück?
Alok Rajasukumaran

1
int month = DateTime.ParseExact(MonthNameValue, "MMMM", CultureInfo.CurrentCulture ).Month
CharithJ

Das ist nicht int zu Monatsname, das ist Datum / Uhrzeit zu Monatsname
Sairfan

28
var monthIndex = 1;
return month = DateTimeFormatInfo.CurrentInfo.GetAbbreviatedMonthName(monthIndex);

Sie können dies auch versuchen


4
Um dieser guten Antwort etwas hinzuzufügen, befindet sich DateTimeFormatInfo in System.Globalization und wird dann zum Importieren dieses Namespace benötigt.
BernieSF

11

Sie können stattdessen so etwas tun.

return new DateTime(2010, Month, 1).ToString("MMM");

0
CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(
    Convert.ToInt32(e.Row.Cells[7].Text.Substring(3,2))).Substring(0,3) 
    + "-" 
    + Convert.ToDateTime(e.Row.Cells[7].Text).ToString("yyyy");

Woher kommt das eüberhaupt?!
Stuart.Sklinar
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.