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.