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?

Alex Hope O'Connor
quelle

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

CharithJ
quelle
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

xei2k
quelle
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");
Bala R.
quelle
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");
Samuel A.
quelle
Woher kommt das eüberhaupt?!
Stuart.Sklinar