【发布时间】:2011-10-09 13:49:17
【问题描述】:
获取DateTime 对象月份完整名称的正确方法是什么?
例如January,December。
我目前正在使用:
DateTime.Now.ToString("MMMMMMMMMMMMM");
我知道这不是正确的做法。
【问题讨论】:
获取DateTime 对象月份完整名称的正确方法是什么?
例如January,December。
我目前正在使用:
DateTime.Now.ToString("MMMMMMMMMMMMM");
我知道这不是正确的做法。
【问题讨论】:
使用the "MMMM" custom format specifier:
DateTime.Now.ToString("MMMM");
【讨论】:
应该只是DateTime.ToString( "MMMM" )
您不需要所有额外的Ms。
【讨论】:
您可以像 mservidio suggested 那样做,或者更好的是,使用这个重载来跟踪您的文化:
DateTime.Now.ToString("MMMM", CultureInfo.InvariantCulture);
【讨论】:
这是
DateTime.Now.ToString("MMMM");
有 4 个Ms。
【讨论】:
如果你想要当前月份,你可以使用
DateTime.Now.ToString("MMMM") 获取完整月份或DateTime.Now.ToString("MMM") 获取缩写月份。
如果您想获取其他日期的月份字符串,则在将其加载到 DateTime 对象后,您可以使用该对象的相同函数:dt.ToString("MMMM") 获取完整月份或dt.ToString("MMM") 获取缩写月份。
参考: Custom Date and Time Format Strings
或者,如果您需要特定于文化的月份名称,那么您可以尝试以下方法:
DateTimeFormatInfo.GetAbbreviatedMonthName Method
DateTimeFormatInfo.GetMonthName Method
【讨论】:
DateTime.Now 的 DateTime 中提及如何做到这一点。我以为是string mon = myDate.Month.ToString("MMM"),但遗憾的是,它在我的字符串变量中吐出了“MMM”,这让我很失望。很高兴您努力展示如何在日期本身使用.ToString("MMM") 来获取月份,而不是DateTime.Now。以及您如何解释MMM 和MMMM 之间的区别。此页面上的最佳答案。赞一个。
您可以使用 Culture 获取您所在国家/地区的月份名称,例如:
System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("ar-EG");
string FormatDate = DateTime.Now.ToString("dddd., MMM dd yyyy, hh:MM tt", culture);
【讨论】:
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.
*/
【讨论】:
如果您收到“MMMM”作为响应,您可能正在获取月份,然后将其转换为已定义格式的字符串。
DateTime.Now.Month.ToString("MMMM")
将输出“MMMM”
DateTime.Now.ToString("MMMM")
将输出月份名称
【讨论】:
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);
【讨论】: