2010-11-09 56 views
0

文化「en-ca」的長日期爲MMMM-dd-yy。這是正確的,我已經通過文檔驗證了這一點。通過執行以下操作,您可以在.NET中驗證結果。NLS API給出「en-ca」的錯誤長日期

Dim culture As CultureInfo = CultureInfo.GetCultureInfo("en-ca") 
    MsgBox(culture.DateTimeFormat.LongDatePattern) 

我想弄清楚爲什麼會出現與NLS API將返回「MMMMM d,YYYY」作爲默認的長日期的差異。這是不正確的。我在這裏錯過了什麼嗎?我只是好奇,如果有人知道這個具體細節。

NLS API參考: http://msdn.microsoft.com/en-us/goglobal/bb896001.aspx

回答

2

這.NET 3.5SP1和.NET 4.0之間變化。 .NET 3.5生成MMMM d,yyyy,與記錄的Vista NLS值相同。

.NET 4.0生成MMMM-dd-yy。同我所得到的,當我使用GetLocaleInfo()上的Win7搭配:

wchar_t buf[256]; 
GetLocaleInfo(0x1009, LOCALE_SLONGDATE, buf, 256); 

我認爲.NET 4.0現在使用Windows區域信息,而不是依靠自身的表。儘管如此,沒有什麼比文化數據變化更快。如果您認爲這是不正確的,那麼您可以在connect.microsoft.com上提交反饋意見

相關問題