【发布时间】:2015-01-09 19:14:52
【问题描述】:
我有一个使用 DateTime.Now 的 C# 编写的控制台应用程序。将 Windows 区域设置为“英语(美国)”,短日期输出为 M/d/yyyy。我的应用程序实例在文化格式设置为“英语(加拿大)”且短日期格式设置为 dd/MM/yyyy 的机器上运行。由于我希望跨不同服务器的应用程序保持一致,因此我将 Windows 区域设置中的短日期格式更改为 M/d/yyyy。但是,我的应用程序仍将 DateTime.Now 输出为 dd/MM/yyyy。我的应用程序是否需要更改其他内容才能以我指定的格式输出?
我在不同的地方都这样做,但这里有一个例子:
TimeZoneInfo customTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
DateTime thisTime = TimeZoneInfo.ConvertTime(DateTime.Now, customTimeZone);
//The below output is not formatted how the Windows Region short date is specified.
Console.Writeline(thisTime);
在这种情况下,我的 DateTime 未按照 Windows 区域设置中指定的格式设置。
【问题讨论】:
-
只需强制执行您喜欢的格式。
-
请展示一些执行输出的实际代码。我完全赞成 phadaphunk,更改本地设置可能不是正确的方法。
-
是的,可以。但是,我不明白为什么更改 Windows 设置不会强制执行我指定的日期格式。
-
该代码没有格式化日期时间,而是更改了时区。在您打印的位置显示代码。
标签: c# datetime globalization