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

例如,我想用以下格式打印日期——2009年7月27日星期一.然而,我能找到的最接近DateTime的例子.ToString()是2009年7月27日星期一.

我能用DateTime做这个吗.ToString()还是我必须回到我自己的代码?

推荐答案

作为参考,我总是使用[SteveX String Formatting]1

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

然后,您必须为1提供"st",为2提供"nd",为3提供"rd",为所有其他提供"th",并且可以内联"?:"语句.

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

.net相关问答推荐

为什么$NULL在ForEach-Object{}和Foreach()中的行为不同?

.NET Blazor-使用子组件中的处理程序方法进行双向数据绑定

使用托管身份而不是检测密钥配置Application Insights

从窗体中移除另一个控件中引用的控件时获取设计时通知

EFCore.DbSet.Update 方法添加新行而不是更新它

使用 Task.WhenAll 但需要跟踪每个单独的 Task 的成功

如何为多种文件类型设置 FileSystemWatcher 过滤器?

AsyncLocal 的语义与逻辑调用上下文有何不同?

有没有办法以编程方式最小化窗口

Winforms:Application.Exit vs Environment.Exit vs Form.Close

DBNull 的意义何在?

什么是 Hashtable 的通用版本?

寻找 .NET 的命令行参数解析器

关于 Enumerable.Range 与传统 for 循环的 foreach 的思考

是否有可用的 WPF 备忘单?

.NET 中的对象引用有多大?

获取系统中已安装的应用程序

将 Dictionary 转换为匿名对象?

将 SignalR 2.0 .NET 客户端重新连接到服务器集线器的最佳实践

如何修改 KeyValuePair 值?