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ć?

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


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


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");

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");

Skąd w eogóle nadchodzi ?!
Stuart.Sklinar
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.