为什么es-MX日期格式从Windows 7更改到Windows 10 ?

本文关键字:Windows 日期 格式 为什么 es-MX | 更新日期: 2023-09-27 18:09:29

下面是一个单元测试:

[TestMethod]
public void Check_how_es_MX_displays_MMM()
{
    var originalCulture = Thread.CurrentThread.CurrentCulture;
    try
    {
        Thread.CurrentThread.CurrentCulture = new CultureInfo("es-MX");
        var result = new DateTime(2015, 8, 6).ToString("MMM");
        Assert.AreEqual("ago", result);
    }
    finally
    {
        Thread.CurrentThread.CurrentCulture = originalCulture;
    }
}

当我在Windows 7上运行这个时,它通过了。当我在Windows 10机器上运行这个程序时,它失败了:

Assert.AreEqual failed. Expected:<ago>. Actual:<ago.>.

我在两台电脑上都基于。net 4.5.1构建。

为什么"MMM"格式字符串在Windows 7中返回"ago"而在windows10中返回"ago."?我以为它总是会给我一个3个字母的月份代码。

编辑

更多的阅读表明使用MMM会查找缩略的月份名称:System.Globalization.DateTimeFormatInfo.AbbreviatedMonthNames

编辑2

这是另一个问题,处理(我认为)同样的问题

为什么es-MX日期格式从Windows 7更改到Windows 10 ?

从Windows 10开始,语言环境数据来自CLDR -通用语言环境数据存储库

更多信息:https://blogs.msdn.microsoft.com/shawnste/2015/08/29/locale-data-in-windows-10-cldr/