如何从 DateTime 获取完整的月份名称

问题描述 投票:0回答:14

获取

DateTime
对象月份的完整名称的正确方法是什么?
例如
January
December

我目前正在使用:

DateTime.Now.ToString("MMMMMMMMMMMMM");

我知道这不是正确的方法。

c# datetime calendar
14个回答
342
投票

使用 “MMMM”自定义格式说明符:

DateTime.Now.ToString("MMMM");

102
投票

您可以按照 mservidio 建议进行操作,或者更好的是,使用此超载来跟踪您的文化:

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

43
投票

如果您想要当前月份,您可以使用

DateTime.Now.ToString("MMMM")
获取完整月份,或
DateTime.Now.ToString("MMM")
获取缩写月份。

如果您想要获取其他日期的月份字符串,在将其加载到 DateTime 对象中后,您可以使用该对象的相同函数:

dt.ToString("MMMM")
获取完整月份,或
dt.ToString("MMM")
获取缩写月份。

参考: 自定义日期和时间格式字符串

或者,如果您需要文化特定的月份名称,那么您可以尝试以下方法: DateTimeFormatInfo.GetAbbreviatedMonthName 方法
DateTimeFormatInfo.GetMonthName 方法


39
投票

如果您收到“MMMM”作为响应,则可能您正在获取月份,然后将其转换为定义格式的字符串。

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

将输出“MMMM”

DateTime.Now.ToString("MMMM") 

将输出月份名称


18
投票

您可以使用文化来获取您所在国家/地区的月份名称,例如:

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

17
投票

DateTime.Now.ToString("MMMM");

有 4 个

M


13
投票
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.
*/

12
投票

应该只是

DateTime.ToString( "MMMM" )

您不需要所有额外的

M


2
投票
Debug.writeline(Format(Now, "dd MMMM yyyy"))

0
投票

您可以根据当前使用的文化,使用 System.Globalization 中的 CultureInfo 来获取该数据。

_ = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(DateTime.Now.Month)

或者,使用 InvariantCulture 也可以获得英文名称。

_ = CultureInfo.InvariantCulture.DateTimeFormat.GetMonthName(DateTime.Now.Month);

0
投票

如果您需要三个月的信件,请使用“MMM”


0
投票

作为一个热门问题,我偶然发现了同样的问题,尽管我的要求是更新的

DateOnly
类型。

幸运的是,相同的方法也适用于较新的数据类型。

DateOnly todayDate = DateOnly.FromDateTime(DateTime.UtcNow); //27-08-2023
string fullMonthName = todayDate.ToString("MMMM");
Console.WriteLine(fullMonthName); //August

-2
投票

将此用作月份的全名:

DateTime date = DateTime.Now;
string month = $"{date:MMMM}"; // f.g October

将此用作月份的缩写名称:

DateTime date = DateTime.Now;
string month = $"{date:MMM}"; // f.g Oct

使用此作为本周的全名:

DateTime date = DateTime.Now;
string month = $"{date:dddd}"; // f.g Saturday

将此用作本周的缩写名称:

DateTime date = DateTime.Now;
string month = $"{date:ddd}"; // f.g Sat

您可以使用此结构设置每个自定义模板 f.g:

DateTime date = DateTime.Now;
string month = $"{date:dd/MMM/yyyy}"; // 12/Oct/2022
string month = $"{date:dd-MM-yyyy}"; // 12-10-2022
string month = $"{date:dd MMMM yyyy}"; // 12 October 2022
string month = $"{date:ddd - - - MMM}"; // Sat - - - Oct
string month = $"{date:ddddd $- yyyy}"; // Saturday $- 2022
string month = $"{date:ddMMyyyy}"; // 12102022

-2
投票
(DateTime = {07/01/2023 12:00:00 AM})

DateTime.ToString("MMMM")  - ( January )
© www.soinside.com 2019 - 2024. All rights reserved.