将日期时间重新格式化为2014年11月7日

时间:2014-09-30 15:07:49

标签: c# asp.net datetime

我自己有一个DateTime变量

7/11/2014 

我希望将该日期转换为

7th November 2014

我使用什么格式?我试过了ToLongDateString,但它错过了日期的后缀。

1 个答案:

答案 0 :(得分:6)

我不相信其中有任何直接的支持(" st"," nd"," th")。净。如果你只需要支持英语,我建议你自己硬编码。例如:

string text = string.Format("{0}{1} {2} {3}", dt.Day, GetOrdinal(dt.Day),
                            dt.ToString("MMMM"), dt.Year);

(你自己写GetOrdinal的地方。)请注意,这假设您希望完全这种格式 - 不同的文化(即使在英语范围内)可能更喜欢November 7th 2014例如。

如果你需要支持各种语言,那就变得非常困难了 - 不同的语言有一些非常不同的方法。

旁注:即使Noda Time还没有解决这个问题。我希望最终实现一些CLDR支持,理论上 应该为所有语言环境处理它。我们会看到......