c# - 程序不遵循 Windows 机器的日期格式(它可以在某处被覆盖吗?)

标签 c# .net winforms datetime regional-settings

我这里有一个非常奇怪的。

在一个简单的 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/

相关文章:

C#初学者q关于dataGrid列

c# - WCF 服务方法中单例模式的问题

c# - Model3DCollection 和 Model3DGroup 有什么区别?

c# - 如何更改 PropertyGrid 控件的边框颜色(或删除边框)?

c# - 在 CONSOLE C# 中检测单键按下

c# - 如何使 nuget 包正确定位多个框架?

c# - 使用通用基类作为方法的参数

c# - 如何在 Winform 中通过拖放将图元文件转换为图像

c# - 如何以编程方式设置标签页的键?

c# - 在 FluentEmail 中的后续电子邮件中不断添加收件人