一尘不染

使用DateTime.ToString()时获取日后缀

c#

使用DateTime.ToString()格式化日期时,是否可以包含日期后缀?

例如,我想以以下格式打印日期-2009年7月27日星期一。但是,使用DateTime.ToString()找到的最接近的示例是2009年7月27日星期一。

可以使用DateTime.ToString()进行此操作,还是必须退回到我自己的代码?


阅读 255

收藏
2020-05-19

共1个答案

一尘不染

作为参考,我始终使用/参考SteveX字符串格式, 并且在任何可用变量中似乎都没有“ th”,但是您可以轻松地使用

string.Format("{0:dddd dd}{1} {0:MMMM yyyy}", DateTime.Now, (?));

然后,您将必须为1提供一个“ st”,为2提供一个“ nd”,为所有其他提供一个“ rd”,并为所有其他提供“ th”,并且可以用“?:”语句内联。

var now = DateTime.Now;
(now.Day % 10 == 1 && now.Day != 11) ? "st"
: (now.Day % 10 == 2 && now.Day != 12) ? "nd"
: (now.Day % 10 == 3 && now.Day != 13) ? "rd"
: "th"
2020-05-19