我有以下代码并使用静态方法我试图添加一个后缀到日期时间对象和基于outputFormat也是通过即时试图格式化日期和返回字符串格式化日期时间后缀
var outputFormat = date.Month != nextDate.Month || isLast ? "d MMMM yyyy" : "dd";
if (isLastMonthDay)
{
formattedDate.AppendFormat("{0}{1}", GetDateSuffix(date, outputFormat), "<br><br>");
}
else
{
formattedDate.AppendFormat("{0}{1}", GetDateSuffix(date, outputFormat).TrimStart('0'), ", ");
}
private static string GetDateSuffix(DateTime date, string outputFormat)
{
string suffix;
switch (date.Day)
{
case 1:
case 21:
case 31:
suffix = "st";
break;
case 2:
case 22:
suffix = "nd";
break;
case 3:
case 23:
suffix = "rd";
break;
default:
suffix = "th";
break;
}
return outputFormat == "d MMMM yyyy" ? string.Format("{0}{1} {2:MMMM} {3}", date.Day, suffix, date.Month, date.Year) : string.Format("{0}{1}", date.Day, suffix);
}
我得到如下因素的结果,我想如果德OUTPUTFORMAT被指定为DD MMMM YYYY日期为输出2015年4月4日,但我越来越MMMM返回。我已阅读http://www.csharp-examples.net/string-format-datetime/和它说使用
String.Format("{0:M MM MMM MMMM}", dt); // "3 03 Mar March" month
任何人都可以看到什么即时做错了吗?
感谢
我没有问题的代码编译,一切除了输出MMMM而不是月份名称外,还可以正常工作 – Paul