我正在将代码从.net框架迁移到.net核心,并在Linux机器上对其进行测试,我遇到的问题之一是调用DateTime ToString()函数时的日期格式,在Windows中默认日期格式由操作系统指导,可以在设置中进行自定义。我尝试在Linux中通过使用所需格式定义新的语言环境文件并设置适当的变量(LC_Time)来执行类似的操作。当询问系统日期时,我会得到所需格式的答案,但是运行代码时,我仍然会得到“错误”的答案。我想念什么吗?
答案 0 :(得分:0)
老问题,但我刚遇到那个问题。这是.NET Core 2的"bug / feature / expected behavior" ...
之所以发生这种情况,是因为en-US的默认短日期(在Linux上)为M / d / yy。确定默认短日期的方式是代码
使用的默认短日期模式是该枚举返回的第一个短日期,看起来ICU为KShort返回了什么
但是,它将根据此pull request在.NET Core 3中进行更改/修复:
我尝试使用dotnet core build pack 2.1.3,它没有解决格式d的问题(仍然得到7/6/18),请您帮我解决一下。预先感谢
此问题在3.0中已修复。我们出于应用程序兼容性原因未更改2.1行为。