为什么 GetCultureInfo() 在不同服务器上的格式不同?

Why would GetCultureInfo() format differently on different servers?

我正在使用两台服务器 (Server 2012 Std) 和 (Server 2016)。

2012 年我 运行 命令:

[System.DateTime]::UtcNow.ToString([System.Globalization.CultureInfo]::GetCultureInfo("en-NZ"))

我得到了结果:

13/03/2018 12:49:55 a.m.

当我 运行 在我的服务器 2016 上执行与上面相同的命令时,我返回:

13/03/2018 12:48:42 AM

它们的关键部分是 AM/PM 格式。我试图了解为什么这些返回不同的结果以及如何使服务器 2016 输出的格式与第一个相同。这是由于应用程序要求,我无权更改应用程序以格式化字符串,因此我必须以某种方式在 OS 级别解决此问题。

查看 Output of times (AM/PM) changed in Windows 10 when using DateTime.ToString("tt") 以对此进行一些讨论。

您似乎无法在不更改应用程序代码的情况下解决此问题。

我发现了同样的问题,并且能够通过使用以下代码解决该问题。不确定这是否是您要找的。

[System.DateTime]::UtcNow.ToString("dd/MM/yyyy hh:mm:ss tt")