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

Posted

技术标签:

【中文标题】如何从 DateTime 获取完整的月份名称【英文标题】:How to get complete month name from DateTime 【发布时间】:2011-10-09 13:49:17 【问题描述】:

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

我目前正在使用:

DateTime.Now.ToString("MMMMMMMMMMMMM");

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

【问题讨论】:

【参考方案1】:

使用the "MMMM" custom format specifier:

DateTime.Now.ToString("MMMM");

【讨论】:

如果只是您感兴趣的月份,则 DateTime.Today 而不是 DateTime.Now 是进一步的简化。没有无用的时间部分,而且速度更快。 令人惊讶的是,我得到的正是文本“MMMM” DateTime.Now.Month.ToString("MMMM");会给你“MMMM”。那是你做的吗?【参考方案2】:

应该只是DateTime.ToString( "MMMM" )

您不需要所有额外的Ms。

【讨论】:

【参考方案3】:

您可以像 mservidio suggested 那样做,或者更好的是,使用这个重载来跟踪您的文化:

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

【讨论】:

这很好,我需要研究一下这种文化。 如果只是您感兴趣的月份,则 DateTime.Today 而不是 DateTime.Now 是进一步的简化。没有无用的时间部分,而且速度更快。【参考方案4】:

这是

DateTime.Now.ToString("MMMM");

有 4 个Ms。

【讨论】:

如果只是您感兴趣的月份,则 DateTime.Today 而不是 DateTime.Now 是进一步的简化。没有无用的时间部分,而且速度更快。【参考方案5】:

如果你想要当前月份,你可以使用 DateTime.Now.ToString("MMMM") 获取完整月份或DateTime.Now.ToString("MMM") 获取缩写月份。

如果您想获取其他日期的月份字符串,则在将其加载到 DateTime 对象后,您可以使用该对象的相同函数:dt.ToString("MMMM") 获取完整月份或dt.ToString("MMM") 获取缩写月份。

参考: Custom Date and Time Format Strings

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

【讨论】:

+1 用于从不是 DateTime.NowDateTime 中提及如何做到这一点。我以为是string mon = myDate.Month.ToString("MMM"),但遗憾的是,它在我的字符串变量中吐出了“MMM”,这让我很失望。很高兴您努力展示如何在日期本身使用.ToString("MMM") 来获取月份,而不是DateTime.Now。以及您如何解释MMMMMMM 之间的区别。此页面上的最佳答案。赞一个。 如果只是您感兴趣的月份,则 DateTime.Today 而不是 DateTime.Now 是进一步的简化。没有无用的时间部分,而且速度更快。【参考方案6】:

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

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

【讨论】:

【参考方案7】:
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.
*/

【讨论】:

【参考方案8】:

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

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

将输出“MMMM”

DateTime.Now.ToString("MMMM") 

将输出月份名称

【讨论】:

【参考方案9】:
Debug.writeline(Format(Now, "dd MMMM yyyy"))

【讨论】:

【参考方案10】:

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

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

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

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

【讨论】:

以上是关于如何从 DateTime 获取完整的月份名称的主要内容,如果未能解决你的问题,请参考以下文章

如何从python中的日期获取月份名称

python---time和datetime

Python的time和datetime

网络套件!使用 freemarker 从日期 DD/MM/YYYY 获取月份名称不起作用

如何从 Power BI 中的月份编号获取月份名称?

如何从 SQL Server 中的日期获取月份编号(不是月份名称)?