CultureInfo在Windows版本之间不一致

有没有人注意到在不同版本的Windows上CultureInfo格式会导致不同的模式?

Windows 7创build了dddd,MMMM dd,YYYY

示例输出: Windows 7

Windows 10和Windows Server 2012都创build了dddd,MMMM d,YYYY

示例输出: Windows 10和Server 2012 R2

我在DateTime上从MSDN站点获得了这个示例。 修改为检查一天中的前导零。

public class Sample { public static void Main() { string msg1 = "The date and time patterns are defined in the DateTimeFormatInfo \n" + "object associated with the current thread culture.\n"; // Initialize a DateTime object. Console.WriteLine("Initialize the DateTime object to May 06, 2001 3:02:15 AM.\n"); DateTime myDateTime = new System.DateTime(2001, 5, 6, 3, 2, 15); // Identify the source of the date and time patterns. Console.WriteLine(msg1); // Display the name of the current culture. CultureInfo ci = CultureInfo.GetCultureInfo("en-us"); Console.WriteLine("Current culture: \"{0}\"\n", ci.Name); // Display the long date pattern and string. Console.WriteLine("Long date pattern: \"{0}\"", ci.DateTimeFormat.LongDatePattern); Console.WriteLine("Long date string: \"{0}\"\n", myDateTime.ToLongDateString()); // Display the long time pattern and string. Console.WriteLine("Long time pattern: \"{0}\"", ci.DateTimeFormat.LongTimePattern); Console.WriteLine("Long time string: \"{0}\"\n", myDateTime.ToLongTimeString()); // Display the short date pattern and string. Console.WriteLine("Short date pattern: \"{0}\"", ci.DateTimeFormat.ShortDatePattern); Console.WriteLine("Short date string: \"{0}\"\n", myDateTime.ToShortDateString()); // Display the short time pattern and string. Console.WriteLine("Short time pattern: \"{0}\"", ci.DateTimeFormat.ShortTimePattern); Console.WriteLine("Short time string: \"{0}\"\n", myDateTime.ToShortTimeString()); Console.ReadLine(); } } 

此外,在Windows 10上还有更多的CultureInfo可用。我希望这将与Windows server 2016一致,并最好通过WU推送到所有版本。

例如; Windows 10支持247 regions ,Windows 2012R2仅覆盖142 regions

CultureInfo对象分为区域:

Windows 10 在这里输入图像说明

Windows 2012R2 在这里输入图像说明