Как правильно получить полное название месяца DateTime
объекта?
например January
, December
.
В настоящее время я использую:
DateTime.Now.ToString("MMMMMMMMMMMMM");
Я знаю, что это неправильный способ.
Ответы:
Используйте описатель настраиваемого формата "MMMM" :
DateTime.Now.ToString("MMMM");
Вы можете делать то, что предлагает mservidio , или, что еще лучше, отслеживать свою культуру, используя эту перегрузку:
DateTime.Now.ToString("MMMM", CultureInfo.InvariantCulture);
Если вам нужен текущий месяц, вы можете использовать его
DateTime.Now.ToString("MMMM")
для получения полного месяца или DateTime.Now.ToString("MMM")
для получения сокращенного месяца.
Если у вас есть другая дата, для которой вы хотите получить строку месяца после ее загрузки в объект DateTime, вы можете использовать те же функции вне этого объекта:
dt.ToString("MMMM")
для получения полного месяца или dt.ToString("MMM")
для получения сокращенного месяца.
Ссылка: строки настраиваемого формата даты и времени
В качестве альтернативы, если вам нужны названия месяцев для конкретных культур, вы можете попробовать следующее:
Метод
DateTimeFormatInfo.GetAbbreviatedMonthName Метод DateTimeFormatInfo.GetMonthName
DateTime
НЕТ DateTime.Now
. Я думал, что это случилось, string mon = myDate.Month.ToString("MMM")
когда меня разочаровало то, что он выплюнул "MMM" в мою строковую переменную. Рад, что вы приложили усилия, чтобы показать, как использовать .ToString("MMM")
дату как таковую, чтобы получить месяц, когда это не так DateTime.Now
. И как вы объяснили разницу между MMM
и MMMM
. Лучший ответ на этой странице. Престижность.
Если вы получили в ответ «MMMM», вероятно, вы получаете месяц, а затем конвертируете его в строку определенного формата.
DateTime.Now.Month.ToString("MMMM")
выведет "MMMM"
DateTime.Now.ToString("MMMM")
выведет название месяца
Вы можете использовать Культуру, чтобы получить название месяца для вашей страны, например:
System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("ar-EG");
string FormatDate = DateTime.Now.ToString("dddd., MMM dd yyyy, hh:MM tt", culture);
Это
DateTime.Now.ToString("MMMM");
С 4 M
с.
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.
*/