为什么不同计算机或操作系统上的相同文化的日期格式不同?

MD'*_*D's 9 .net c# windows cultureinfo date-format

我在托管使用C#.net MVC开发的网站时遇到日期格式问题.

在我的开发机器(OS:Windows 7,.net Framework 4.5)中,西班牙语 - 巴拿马(es-PA)的日期格式为mm/dd/yy,而在服务器机器(OS:Windows 8,.net Framework 4.5)中,它给出了相同文化的d/m/yy格式.

我使用简单的控制台应用程序检查了它.

public static void Main()
{
    DateTime dt = DateTime.Now;
    Thread.CurrentThread.CurrentCulture = new CultureInfo("es-PA");

    Console.WriteLine(dt.ToString("d"));

    Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

开发机器的输出是:10/08/2015

服务器机器上的输出是:8/10/15

我还通过更改语言和区域进行检查,但两种机器的默认格式都不同.

为什么不同机器的格式在同一文化中有所不同?这有什么解决方案吗?

Jon*_*eet 6

为什么相同文化在不同机器上的格式不同?

因为格式会随着时间的推移、在不同的操作系统版本和补丁/修补程序中进行更新。.NET 从操作系统获取格式(无论如何,我相信),因此操作系统是差异的根源 - 正如您在区域设置中看到的那样。

有什么解决办法吗?

检查两台计算机是否都已安装最新的 Windows 更新,并可能检查是否有可用的修补程序。否则,您始终可以手动更新要更改的内容,但显然这远非理想。

Windows 8 可能只是比 Windows 7 拥有更多的最新信息,而Windows 更新无法解决这一问题:(