我有一个的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支持,理论上应该为所有地区处理它。我们拭目以待。。。