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



我有一个的DateTime变量

7/11/2014 

我想将该日期转换为

7th November 2014

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

我不认为.NET中有任何对序数("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支持,理论上应该为所有地区处理它。我们拭目以待。。。

相关内容

最新更新