Как получить полное название месяца из DateTime - PullRequest
153 голосов
/ 20 июля 2011

Как правильно получить полное имя месяца для объекта DateTime?
Например, January, December.

Я сейчас использую:

DateTime.Now.ToString("MMMMMMMMMMMMM");

Я знаю, что это неправильный способ сделать это.

Ответы [ 8 ]

248 голосов
/ 20 июля 2011

Используйте спецификатор пользовательского формата "MMMM" :

DateTime.Now.ToString("MMMM");
76 голосов
/ 20 июля 2011

Вы можете сделать, как mservidio предложил , или даже лучше, отслеживать свою культуру, используя эту перегрузку:

DateTime.Now.ToString("MMMM", CultureInfo.InvariantCulture);
37 голосов
/ 20 августа 2013

Если вы хотите текущий месяц, вы можете использовать DateTime.Now.ToString("MMMM") для получения полного месяца или DateTime.Now.ToString("MMM") для получения сокращенного месяца.

Если у вас есть другая дата, для которой вы хотите получить строку месяца, после ее загрузки в объект DateTime вы можете использовать те же функции для этого объекта:
dt.ToString("MMMM") для получения полного месяца или dt.ToString("MMM") для получения сокращенного месяца.

Ссылка: Пользовательские строки формата даты и времени

В качестве альтернативы, если вам нужны названия месяцев для конкретной культуры, вы можете попробовать это: DateTimeFormatInfo.GetAbbreviatedMonthName Method
Метод DateTimeFormatInfo.GetMonthName

14 голосов
/ 20 июля 2011

Это

DateTime.Now.ToString("MMMM");

С 4 M с.

13 голосов
/ 29 октября 2014

Вы можете использовать Культуру, чтобы получить название месяца для вашей страны, например:

System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("ar-EG");
string FormatDate = DateTime.Now.ToString("dddd., MMM dd yyyy, hh:MM tt", culture);
11 голосов
/ 20 июля 2011

Это должно быть просто DateTime.ToString( "MMMM" )

Вам не нужны все дополнительные M с.

7 голосов
/ 23 октября 2018

Если вы получите «ММММ» в качестве ответа, возможно, вы получаете месяц и затем конвертируете его в строку определенного формата.

DateTime.Now.Month.ToString («ММММ») будет выводитьMMMM "

DateTime.Now.ToString (" MMMM ") будет выводить название месяца

6 голосов
/ 23 февраля 2017
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.
*/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...