월 번호에서 월 이름 가져 오기


254

가능한 중복 :
C #에서 MonthName을 얻는 방법?

나는 다음 c # 구문을 사용하여 월에서 월 이름을 얻지 못했지만 August원하는 것만 얻습니다 Aug..

System.Globalization.DateTimeFormatInfo mfi = new 
System.Globalization.DateTimeFormatInfo();
string strMonthName = mfi.GetMonthName(8).ToString();

어떠한 제안...


3
이외에도 .GetMonthName (INT)이 당신이 찾고있는 문자열을 반환하지에서, 그것은 않습니다 로 .toString ()가 필요하므로, 문자열을 반환
DaveD

1
.Substring (0,3)을 추가하는 것이 쉽지 않을까요?
Federico Navarrete

답변:


349

짧은 달 이름의 경우 다음을 사용하십시오.

string monthName = new DateTime(2010, 8, 1)
    .ToString("MMM", CultureInfo.InvariantCulture);

스페인어 ( "es") 문화에 대한 길고 만월 이름

string fullMonthName = new DateTime(2015, i, 1).ToString("MMMM", CultureInfo.CreateSpecificCulture("es"));

"8 월"을 원하면 어떻게 위의 코드를 사용합니까? 만월 이름?
Albert Laure

25
@ User6675636b20796f7521string monthName = new DateTime(2010, 8, 1) .ToString("MMMM", CultureInfo.InvariantCulture);
Robert Fricke

"string s = new DateTime (1958, month, 1) .ToString ("MMMM ", CultureInfo.InvariantCulture ());" "비가 동적 인 멤버 'System.Globalization.CultureInfo.InvariantCulture'는 메서드처럼 사용할 수 없습니다."
B. Clay Shannon

B. Clay Shannon은 (new DateTime (1958, month, 1)) 주위에 ()를 추가합니다.
핵 단

2
이 답변은 OP 질문과 같이 DateTime 대신 월 번호에서 작동하는 가장 좋은 IMHO가 아닙니다. Lasse V. Karlsen의 답변은 짧은 달 이름으로 더 간단합니다. 현지 문화에서 월 이름을 얻으려면 CharithJ answer와 같은 CultureInfo.CurrentCulture를 사용하십시오.
AFract

290

약식 월 이름 : "8 월"

DateTimeFormatInfo.GetAbbreviatedMonthName 메서드 (Int32)

현재 DateTimeFormatInfo 객체와 연결된 문화권을 기반으로 지정된 월의 문화권 약어 이름을 반환합니다.

string monthName = CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(8)

만월 이름 : "8 월"

DateTimeFormatInfo.GetMonthName 메서드 (Int32)

현재 DateTimeFormatInfo 개체와 연결된 문화권을 기반으로 지정된 월의 문화권 별 전체 이름을 반환합니다.

string monthName = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(8);

2
GetMonthName은 전체 월 이름을 반환합니다. JAN, FEB 등으로 필요한 경우 var month = 10; string monthName = new DateTime (2014, month, 1) .ToString ( "MMM", CultureInfo.InvariantCulture) .ToUpper ();
Dmitry Pavlov

3
@DmitryPavlov GetAbbreviatedMonthName()가 더 좋은 방법입니다.
NickG

2
DateTimeFormatInfo는 (적어도 .NET 4.6) DateTimeFormat되어야
TravisWhidden

두 번째 옵션은 저에게 도움 GetCultureInfo("en-GB")CurrentCulture되었기 때문에 대신 사용했지만 월 이름은 항상 영어로 표시됩니다
Maurice Klimek

이것이 가장 좋은 대답이어야합니다. 내 하루를 구했다. 감사.
Mahmoud Eidarous



11

다음과 같은 방법으로 얻을 수 있습니다.

DateTimeFormatInfo mfi = new DateTimeFormatInfo();
string strMonthName = mfi.GetMonthName(8).ToString(); //August

자, 처음 세 글자를 얻으십시오

string shortMonthName = strMonthName.Substring(0, 3); //Aug

9
System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(4)

이 메소드는 April

특별한 언어가 필요한 경우 다음을 추가 할 수 있습니다.

<system.web>
    <globalization culture="es-ES" uiCulture="es-ES"></globalization>
     <compilation debug="true"
</system.web>

또는 선호하는 언어.

예를 들어, es-ES문화 와 함께 :

System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(4)

보고: Abril

반환 : Abril(스페인어, culture as es-ES우리는 webconfig파일에 구성했기 때문에 그렇지 않으면 얻을 수 있습니다 April)

작동합니다.


5

월 인덱스 (1-12) 에서 텍스트 (1 월-12 월) 를 반환해야합니다.

int monthNumber = 1; //1-12  
string monthName = new DateTimeFormatInfo().GetMonthName(monthNumber);

1
추가 정보를 제공해주십시오. 코드 만 게시하지 마십시오
ochs.tobi 7:14의

1
var month = 5;
var cultureSwe = "sv-SE";
var monthSwe = CultureInfo.CreateSpecificCulture(cultureSwe).DateTimeFormat.GetAbbreviatedMonthName(month);
Console.WriteLine(monthSwe);

var cultureEn = "en-US";
var monthEn = CultureInfo.CreateSpecificCulture(cultureEn).DateTimeFormat.GetAbbreviatedMonthName(month);
Console.WriteLine(monthEn);

산출

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