将month int转换为月份名称


81

我只是试图使用该DateTime结构将1到12之间的整数转换为缩写的月份名称。

这是我尝试过的:

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

但是我FormatException在第一行得到了一个,因为字符串不是有效的DateTime。谁能告诉我该怎么做?

Answers:


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

有关更多详细信息,请参见此处

要么

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

或者,如果您想获得特定于文化的缩写名称。

GetAbbreviatedMonthName(1);

参考


8
GetAbbreviatedMonthName()似乎合适。
Bala R

这是什么反面?输入月份名称并取回号码?
Alok Rajasukumaran

1
int month = DateTime.ParseExact(MonthNameValue, "MMMM", CultureInfo.CurrentCulture ).Month
CharithJ

那不是月份名称的整数,而是日期时间到月份的名称
sairfan

28
var monthIndex = 1;
return month = DateTimeFormatInfo.CurrentInfo.GetAbbreviatedMonthName(monthIndex);

您也可以尝试这个


4
只是为了给这个好的答案添加一些内容,DateTimeFormatInfo在System.Globalization内部,然后需要导入该名称空间。
BernieSF 2014年

11

您可以改为执行类似的操作。

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

哪里e来的?
Stuart.Sklinar,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.