Преобразовать месяц int в название месяца - PullRequest
67 голосов
/ 09 июня 2011

Я просто пытался использовать структуру DateTime для преобразования целого числа от 1 до 12 в сокращенное название месяца.

Вот что я попробовал:

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

Однако я получаю FormatException в первой строке, потому что строка не является допустимой DateTime. Может кто-нибудь сказать мне, как это сделать?

Ответы [ 4 ]

121 голосов
/ 09 июня 2011
CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(1);

См. Здесь для более подробной информации.

Или

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

Или, если вы хотите получить специфичное для культуры сокращенное имя.

GetAbbreviatedMonthName(1);

Ссылка

25 голосов
/ 28 января 2014
var monthIndex = 1;
return month = DateTimeFormatInfo.CurrentInfo.GetAbbreviatedMonthName(monthIndex);

Вы также можете попробовать это

11 голосов
/ 09 июня 2011

Вместо этого вы можете сделать что-то подобное.

return new DateTime(2010, Month, 1).ToString("MMM");
0 голосов
/ 08 января 2015
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");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...