月番号から月名を取得


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 2017年

回答:


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、2014年

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.クレイシャノン

B.クレイシャノン((DateTime(1958、month、1))の周りに()を追加
核の甘い

2
この回答は、OPの質問のように、DateTimeの代わりに月の番号から作業するのに最適なIMHOではありません。Lasse V. Karlsenの回答は、短い月の名前の方が簡単です。そして、ローカルカルチャで月の名前を取得するには、CharithJ回答のようにCultureInfo.CurrentCultureを使用します。
AFract、

290

省略された月名の場合:「Aug」

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を使用できます。文字列monthName = new DateTime(2014、month、1).ToString( "MMM"、CultureInfo.InvariantCulture).ToUpper();
ドミトリーパブロフ2014年

3
@DmitryPavlov GetAbbreviatedMonthName()はそのためのより良い方法です。
NickG、2015年

2
DateTimeFormatInfoはDateTimeFormatである必要があります(少なくとも.net 4.6では)
TravisWhidden

2番目のオプションはうまくいきましたが、私が確認したかったので、GetCultureInfo("en-GB")代わりに使用しましたがCurrentCulture、月の名前は常に英語で表示されます
モーリスクリメク

これが最良の答えです。私の日を救った。ありがとう。
Mahmoud Eidarous



11

これは次の方法で取得できます。

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

では、最初の3文字を取得します

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 '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.