월 정수를 월 이름으로 변환


82

나는 단순히 DateTime구조 를 사용하여 1에서 12 사이의 정수를 축약 된 월 이름으로 변환 하려고했습니다 .

내가 시도한 것은 다음과 같습니다.

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

그러나 FormatException문자열이 유효하지 않기 때문에 첫 번째 줄에 표시 DateTime됩니다. 누구든지이 작업을 수행하는 방법을 말해 줄 수 있습니까?

답변:


139
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

그것은 월 이름에 int가 아니라 datetime에 달 이름입니다
sairfan

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

이것도 시도해 볼 수 있습니다


4
이 좋은 대답에 무언가를 추가하기 위해 DateTimeFormatInfo는 System.Globalization 내부에 있으며이 네임 스페이스를 가져 오는 데 필요합니다.
BernieSF 2014

12

대신 이와 같이 할 수 있습니다.

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.