Ответ 1
Попробуйте GetMonthName из DateTimeFormatInfo
http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo.getmonthname.aspx
Вы можете сделать это:
CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(1);
Есть ли лучший способ превратить целое число в его имя месяца в .net?
Очевидно, я могу развернуть дату и время, чтобы выровнять его и проанализировать название месяца. Это просто кажется огромной тратой времени.
Попробуйте GetMonthName из DateTimeFormatInfo
http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo.getmonthname.aspx
Вы можете сделать это:
CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(1);
Обновлено с правильным пространством имен и объектом:
//This was wrong
//CultureInfo.DateTimeFormat.MonthNames[index];
//Correct but keep in mind CurrentInfo could be null
DateTimeFormatInfo.CurrentInfo.MonthNames[index];
Почему бы просто не использовать somedatetime.ToString("MMMM")
?
Вы можете использовать статический метод из пространства имен Microsoft.VisualBasic
:
string monthName = Microsoft.VisualBasic.DateAndTime.MonthName(monthInt, false);
DateTime dt = new DateTime(year, month, day);
Response.Write(day + "-" + dt.ToString("MMMM") + "-" + year);
Таким образом, ваш месяц будет отображаться по имени, а не по целому числу.
Чтобы получить сокращенное значение месяца, вы можете использовать Enum.Parse();
Enum.Parse(typeof(Month), "0");
Это приведет к результату "Янв".
Помните, что это индекс на основе нуля.