Konwertuj int miesiąca na nazwę miesiąca

82

Po prostu próbowałem użyć tej DateTimestruktury do przekształcenia liczby całkowitej od 1 do 12 w skróconą nazwę miesiąca.

Oto, czego próbowałem:

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

Jednak dostaję FormatExceptionw pierwszym wierszu, ponieważ ciąg nie jest prawidłowy DateTime. Czy ktoś może mi powiedzieć, jak to zrobić?

Alex Hope O'Connor
źródło

Odpowiedzi:

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

Zobacz tutaj, aby uzyskać więcej informacji.

Lub

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

Lub jeśli chcesz uzyskać skróconą nazwę specyficzną dla kultury .

GetAbbreviatedMonthName(1);

Odniesienie

CharithJ
źródło
8
GetAbbreviatedMonthName()wydaje się właściwe.
Bala R
Co jest przeciwieństwem tego? wprowadzić nazwę miesiąca i odzyskać numer?
Alok Rajasukumaran
1
int month = DateTime.ParseExact(MonthNameValue, "MMMM", CultureInfo.CurrentCulture ).Month
CharithJ
to nie jest nazwa miesiąca, to nazwa od
daty i godziny
28
var monthIndex = 1;
return month = DateTimeFormatInfo.CurrentInfo.GetAbbreviatedMonthName(monthIndex);

Możesz też spróbować tego

xei2k
źródło
4
Aby dodać coś do tej dobrej odpowiedzi, DateTimeFormatInfo znajduje się w System.Globalization, a następnie jest potrzebne do zaimportowania tej przestrzeni nazw.
BernieSF
12

Zamiast tego możesz zrobić coś takiego.

return new DateTime(2010, Month, 1).ToString("MMM");
Bala R
źródło
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.
źródło
Skąd w eogóle nadchodzi ?!
Stuart.Sklinar