DateTimeFormatInfo.GetShortestDayName(DayOfWeek)应该返回SuMo等名称,如Microsoft documentation上示例的输出所示.

相反,我只收到一个字母:SM等等.

要复制的代码:(我使用的是WPF.NET6)

DateTimeFormatInfo en_us = CultureInfo.GetCultureInfo("en-US").DateTimeFormat;
string s = en_us.GetShortestDayName(DayOfWeek.Tuesday);

这对我来说没用,因为周二和周四的标识符是一样的.是什么导致了这个问题,这样我就可以修复它并获得预期的SuMo等?

推荐答案

这很可能是"有意"从Windows特定的获取全球化信息的方式转变为公开可用数据的结果.

下面的第Breaking change: Globalization APIs use ICU libraries on Windows条解释了这一变化(但实际上没有详细说明"如果短名称发生变化"):

从一开始.NET 5,如果应用程序在Windows 10上运行,2019年5月更新或更高版本.NET库默认使用ICU全球化API.

ICU site个缩写词是其中一个组成部分(突出显示是我的):

格式设置:根据所选区域设置的约定设置数字、日期、时间和货币金额的格式.这包括将月份和日期名称翻译为所选语言、choosing appropriate abbreviations、正确排序字段等.这些数据还来自公共区域设置数据存储库.

.net相关问答推荐

无法在Designer、VS2022、. NET 8中打开WinForms表单'

SLN配置文件:映射问题

Ubuntu 22.04 + JetBrains Rider 不能做脚手架 dbContext

SetupSet() 已过时.代替什么?

如何创建 LINQ to SQL 事务?

.NET 中是否有一种简单的方法来获得数字的st、nd、rd和th结尾?

如何在 EF 代码优先中禁用链接表的级联删除?

我应该从 .NET 中的 Exception 或 ApplicationException 派生自定义异常吗?

如何正确停止BackgroundWorker

C# 属性实际上是方法吗?

是否有 TLS 1.2 的 .NET 实现?

如何结合 ||条件语句中的运算符

NuGetPackageImportStamp 有什么用?

从 List 到数组 T[] 的转换

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

X509Certificate 构造函数异常

您可以使用 Xamarin 开发 Linux 应用程序吗?

EF Core 添加迁移构建失败

如何访问 Session 变量并在 javascript 中设置它们?

判断数据表中是否包含空值的最佳方法