获取
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 方法
如果您收到“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.
*/
应该只是
DateTime.ToString( "MMMM" )
您不需要所有额外的
M
。
Debug.writeline(Format(Now, "dd MMMM yyyy"))
您可以根据当前使用的文化,使用 System.Globalization 中的 CultureInfo 来获取该数据。
_ = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(DateTime.Now.Month)
或者,使用 InvariantCulture 也可以获得英文名称。
_ = CultureInfo.InvariantCulture.DateTimeFormat.GetMonthName(DateTime.Now.Month);
如果您需要三个月的信件,请使用“MMM”
作为一个热门问题,我偶然发现了同样的问题,尽管我的要求是更新的
DateOnly
类型。
幸运的是,相同的方法也适用于较新的数据类型。
DateOnly todayDate = DateOnly.FromDateTime(DateTime.UtcNow); //27-08-2023
string fullMonthName = todayDate.ToString("MMMM");
Console.WriteLine(fullMonthName); //August
将此用作月份的全名:
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
(DateTime = {07/01/2023 12:00:00 AM})
DateTime.ToString("MMMM") - ( January )