2011-06-09 146 views
56

我只是試圖使用DateTime結構將1到12之間的整數轉換爲abbrieviated月份名稱。將月份int轉換爲月份名稱

這裏是我的嘗試:

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

但是我得到了FormatException第一線,因爲該字符串不是一個有效的DateTime。誰能告訴我如何做到這一點?

回答

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

詳情請參閱Here

或者

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

或者,如果你想要得到的特定文化簡稱名。

GetAbbreviatedMonthName(1); 

Reference

+7

'GetAbbreviatedMonthName()'似乎是適當的。 – 2011-06-09 00:43:54

+0

與此相反的是什麼?輸入月份名稱並取回數字? – 2016-10-27 13:56:39

+0

'int month = DateTime.ParseExact(MonthNameValue,「MMMM」,CultureInfo.CurrentCulture).Month' – CharithJ 2016-10-28 02:55:53

10

你可以這樣做。

return new DateTime(2010, Month, 1).ToString("MMM"); 
21
var monthIndex = 1; 
return month = DateTimeFormatInfo.CurrentInfo.GetAbbreviatedMonthName(monthIndex); 

你可以試試這一個,以及

+4

只需向此良好答案添加內容,DateTimeFormatInfo位於System.Globalization內部,則需要導入此名稱空間。 – BernieSF 2014-11-28 20:33:43

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"); 
相關問題