2010-11-09 55 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上提交反馈意见

相关问题