web-dev-qa-db-ja.com

DateTimeから完全な月名を取得する方法

DateTimeオブジェクトの完全な月名を取得するための適切な方法は何ですか?
例えば。 JanuaryDecember

私は現在使用しています:

DateTime.Now.ToString("MMMMMMMMMMMMM");

それが正しい方法ではないことを私は知っています。

152
user728885

"MMMM"カスタム書式指定子 :を使用してください。

DateTime.Now.ToString("MMMM");
246
mservidio

あなたは mservidioが提案した 、あるいはもっと良いことに、このオーバーロードを使ってあなたの文化を追跡することができます。

DateTime.Now.ToString("MMMM", CultureInfo.InvariantCulture);
74
emp

今月が必要な場合は、DateTime.Now.ToString("MMMM")を使用して全月を取得するか、DateTime.Now.ToString("MMM")を使用して省略形の月を取得できます。

月文字列を取得する日付が他にもある場合は、DateTimeオブジェクトにロードした後で、そのオブジェクトから同じ関数を使用できます。
月全体を取得する場合はdt.ToString("MMMM")、短縮月を取得する場合はdt.ToString("MMM")です。

参照: カスタムの日付と時刻のフォーマット文字列

あるいは、カルチャ固有の月名が必要な場合は、これらを試すことができます。 DateTimeFormatInfo.GetAbbreviatedMonthName Method
DateTimeFormatInfo.GetMonthNameメソッド

36
Jeffrey Blake

それは

DateTime.Now.ToString("MMMM");

4つのMsを使って。

13
Alex Turpin

次のように、Cultureを使用して自分の国の月名を取得できます。

System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("ar-EG");
string FormatDate = DateTime.Now.ToString("dddd., MMM dd yyyy, hh:MM tt", culture);
12
Yehia

それはちょうどDateTime.ToString( "MMMM" )であるべきです

余分なMをすべて必要とするわけではありません。

10
Stefan H

応答として「MMMM」を受け取った場合、おそらく月を取得してから、それを定義済みフォーマットのストリングに変換しています。

DateTime.Now.Month.ToString( "MMMM")は、 "MMMM"を出力します。

DateTime.Now.ToString( "MMMM")は月名を出力します

DateTime birthDate = new DateTime(1981, 8, 9);
Console.WriteLine ("I was born on the {0}. of {1}, {2}.", birthDate.Day, birthDate.ToString("MMMM"), birthDate.Year);

/* The above code will say:
"I was born on the 9. of august, 1981."

"dd" converts to the day (01 thru 31).
"ddd" converts to 3-letter name of day (e.g. mon).
"dddd" converts to full name of day (e.g. monday).
"MMM" converts to 3-letter name of month (e.g. aug).
"MMMM" converts to full name of month (e.g. august).
"yyyy" converts to year.
*/
5
Madolite