-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與交易(我認爲)同樣的問題。
MMM不*不*產生3月份信的名字,它生成的簡寫月份名稱。文化偏好*做*改變,甚至比軟件開發更快。你需要更新你的測試。 –
@HansPassant - 是的,我正在意識到這一點。實際上這個測試只是一個例子,真正的測試告訴我,當我們遷移到Windows 10時,使用這種格式實現我們的功能將不起作用。我們的要求是一個3個字符的縮寫西班牙月份(打印在固定寬度的字段上的標籤)。 –