Як отримати повну назву місяця від DateTime


183

Який правильний спосіб отримати повну назву місяця DateTimeоб’єкта?
наприклад January, December.

Зараз я використовую:

DateTime.Now.ToString("MMMMMMMMMMMMM");

Я знаю, що це не правильний спосіб зробити це.

Відповіді:



88

Ви можете робити так, як запропонував mservidio , а ще краще, слідкувати за своєю культурою, використовуючи це перевантаження:

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

3
Це акуратно, мені потрібно вивчити цю культуру.
Алекс Турпін

2
Якщо це лише місяць, який вас цікавить, то DateTime.Today замість DateTime.Зараз подальше спрощення. Без даремно часу і трохи швидше.
OrizG

39

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

Якщо у вас є якась інша дата, для якої ви хочете отримати рядок місяця, після її завантаження в об’єкт DateTime ви можете використовувати ті самі функції, що й у цього об’єкта:
dt.ToString("MMMM")отримати повний місяць або dt.ToString("MMM")скоротити місяць.

Довідка: Спеціальні рядки формату дати та часу

Крім того, якщо вам потрібні назви місяців, визначених для культури, ви можете спробувати такі: DateTimeFormatInfo.GetAbbreviatedMonthName Метод
DateTimeFormatInfo.GetMonthName Метод


1
+1, щоб згадати, як це зробити з того, DateTimeщо НЕ DateTime.Now. Я думав, що це було, string mon = myDate.Month.ToString("MMM")коли мене сумно відпустили, плюючи "МММ" у мій струнний змінний. Рада, що ви доклали зусиль, щоб показати, як користуватися .ToString("MMM")датою, щоб отримати місяць, коли його немає DateTime.Now. І як ви пояснили різницю між MMMі MMMM. Найкраща відповідь на цій сторінці. Кудос.
vapcguy

1
Якщо це лише місяць, який вас цікавить, то DateTime.Today замість DateTime.Зараз подальше спрощення. Без даремно часу і трохи швидше.
OrizG

21

Якщо ви отримаєте "MMMM" як відповідь, ймовірно, ви отримуєте місяць, а потім перетворюєте його в рядок визначеного формату.

DateTime.Now.Month.ToString("MMMM") 

виведе "MMMM"

DateTime.Now.ToString("MMMM") 

видасть назву місяця


16

Ви можете використовувати культуру, щоб отримати назву місяця для своєї країни, наприклад:

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

14

Його

DateTime.Now.ToString("MMMM");

З 4 Mс.


1
Якщо це лише місяць, який вас цікавить, то DateTime.Today замість DateTime.Зараз подальше спрощення. Без даремно часу і трохи швидше.
OrizG

11

Це має бути справедливим DateTime.ToString( "MMMM" )

Вам не потрібно всіх зайвих Ms.


9
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.
*/
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.