我这里有一个非常奇怪的。
在一个简单的 Windows 窗体应用程序中,我编写了以下 C# 代码
MessageBox.Show("Todays date is: "+DateTime.Today.ToShortDateString());
正常情况下运行它只会以 Windows 指定的格式(在区域设置中)显示日期。 (所以在我的机器设置为本地丹麦语中,它显示日期为 dd-MM-yyyy => 13-10-2017)这是预期的。
但我有一个客户的服务器(Windows Server 2012),但情况并非如此。在他们的设置中,Windows 区域设置就像我的 (dd-MM-yyyy),但尽管上面的简单代码将其显示为 MM/dd/yyyy => 10/13/2017,这是美国格式。
我根本不明白这一点,并且让它更加神秘,它只适用于该服务器上的某些 Windows 用户(一些显示格式为窗口中的时钟,而另一些则使用不变格式)。
我一直在 Google 上搜索是否有某种可以在用户级别覆盖的 .NET 设置,但没有找到任何东西。
代码中没有任何 se 文化和任何特殊的东西(只是 File > New project > Winform [Targeting .net 4.5] 和上面的代码行)。
最佳答案
您是否尝试过使用 ToString()
方法?
DateTime.Today.ToString(CultureInfo.InvariantCulture)
结果:10/13/2017 00:00:00
DateTime.Today.ToString(CultureInfo.CurrentCulture);
结果:13.10.2017 00:00:00
这是我在(德语)机器上的体验。
关于c# - 程序不遵循 Windows 机器的日期格式(它可以在某处被覆盖吗?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46726765/