从月份编号中获取月份名称

bal*_*569 233 .net c# datetime

可能重复:
如何在c#中获取MonthName?

我使用以下c#语法从月份获取月份名称,但我得到的August只是我想要的Aug...

System.Globalization.DateTimeFormatInfo mfi = new 
System.Globalization.DateTimeFormatInfo();
string strMonthName = mfi.GetMonthName(8).ToString();
Run Code Online (Sandbox Code Playgroud)

任何建议......

Dar*_*rov 326

对于短月份名称,请使用:

string monthName = new DateTime(2010, 8, 1)
    .ToString("MMM", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

西班牙语("es")文化的长/月份名称

string fullMonthName = new DateTime(2015, i, 1).ToString("MMMM", CultureInfo.CreateSpecificCulture("es"));
Run Code Online (Sandbox Code Playgroud)

  • @User6675636b20796f7521 `string monthName = new DateTime(2010, 8, 1) .ToString("MMMM", CultureInfo.InvariantCulture);` (24认同)
  • 这个答案不是最好的恕我直言,从一个月号而不是像OP问题中的DateTime.Lasse V. Karlsen的回答对于短月名来说更为直截了当.要获取当地文化中的月份名称,请使用CultureInfo.CurrentCulture,如CharithJ答案中所示. (2认同)

Cha*_*thJ 267

对于缩写月份名称:"Aug"

DateTimeFormatInfo.GetAbbreviatedMonthName方法(Int32)

根据与当前DateTimeFormatInfo对象关联的区域性返回指定月份的特定于区域性的缩写名称.

string monthName = CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(8)
Run Code Online (Sandbox Code Playgroud)

全月名称:"八月"

DateTimeFormatInfo.GetMonthName方法(Int32)

根据与当前DateTimeFormatInfo对象关联的区域性返回指定月份的区域性特定全名.

string monthName = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(8);
Run Code Online (Sandbox Code Playgroud)

  • @DmitryPavlov`GetAbbreviatedMonthName()`是一种更好的方法. (3认同)
  • GetMonthName返回完整的月份名称.如果你需要它作为JAN,FEB等..你可以使用var month = 10; string monthName = new DateTime(2014,month,1).ToString("MMM",CultureInfo.InvariantCulture).ToUpper(); (2认同)
  • DateTimeFormatInfo应该是DateTimeFormat(至少在.net 4.6中) (2认同)

ang*_*son 83

更换GetMonthNameGetAbbreviatedMonthName,以便它读取:

string strMonthName = mfi.GetAbbreviatedMonthName(8);
Run Code Online (Sandbox Code Playgroud)


Aak*_*shM 12

你要 GetAbbreviatedMonthName


Thi*_*i77 9

你可以通过以下方式得到这个,

DateTimeFormatInfo mfi = new DateTimeFormatInfo();
string strMonthName = mfi.GetMonthName(8).ToString(); //August
Run Code Online (Sandbox Code Playgroud)

现在,获得前三个字符

string shortMonthName = strMonthName.Substring(0, 3); //Aug
Run Code Online (Sandbox Code Playgroud)

谢谢.

  • 很好,尽管您不需要 ToString() 调用 GetMonthName(),因为它已经返回一个字符串。 (2认同)

MrM*_*ins 7

System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(4)
Run Code Online (Sandbox Code Playgroud)

这个方法返回 April

如果您需要一些特殊语言,可以添加:

<system.web>
    <globalization culture="es-ES" uiCulture="es-ES"></globalization>
     <compilation debug="true"
</system.web>
Run Code Online (Sandbox Code Playgroud)

或者您的首选语言.

例如,es-ES文化:

System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(4)
Run Code Online (Sandbox Code Playgroud)

返回: Abril

返回:( Abril用西班牙语,因为我们culture as es-ESwebconfig文件中配置了,否则,你会得到April)

这应该工作.


小智 6

这应该从月份索引(1-12)返回月份文本(一月 - 十二月

int monthNumber = 1; //1-12  
string monthName = new DateTimeFormatInfo().GetMonthName(monthNumber);
Run Code Online (Sandbox Code Playgroud)


big*_*heo 6

您还可以执行以下操作来获取当前月份:

string monthName = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(DateTime.Now.Month);
Run Code Online (Sandbox Code Playgroud)