2016-09-29 50 views
-2

這裏有一個單元測試:爲什麼es-MX日期格式從Windows 7更改爲Windows 10?

[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」?在Widnows 10?我曾以爲它會一直給我一個月的3個字母的代碼。

編輯

一些更多的讀數表明,使用MMM使得它從查找縮寫的月份名稱:System.Globalization.DateTimeFormatInfo.AbbreviatedMonthNames

編輯2

這裏是another question與交易(我認爲)同樣的問題。

+0

MMM不*不*產生3月份信的名字,它生成的簡寫月份名稱。文化偏好*做*改變,甚至比軟件開發更快。你需要更新你的測試。 –

+0

@HansPassant - 是的,我正在意識到這一點。實際上這個測試只是一個例子,真正的測試告訴我,當我們遷移到Windows 10時,使用這種格式實現我們的功能將不起作用。我們的要求是一個3個字符的縮寫西班牙月份(打印在固定寬度的字段上的標籤)。 –

回答

相關問題