月の整数を月の名前に変換する


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

1
int month = DateTime.ParseExact(MonthNameValue, "MMMM", CultureInfo.CurrentCulture ).Month
CharithJ 2016年

その月の名前に日時だ月の名前にint型ではないの
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.