NLS API为“en-ca”提供了错误的漫长日期。

文化“en-ca”的漫长日期是MMMM-dd-yy。这是正确的,我已通过文档验证了这一点。您可以通过执行以下操作在.NET中验证结果。
   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     
已邀请:
这已在.NET 3.5SP1和.NET 4.0之间发生了变化。 .NET 3.5生成MMMM d,yyyy,与记录的Vista NLS值相同。 .NET 4.0生成MMMM-dd-yy。与我在Win7上使用GetLocaleInfo()时得到的相同:
wchar_t buf[256];
GetLocaleInfo(0x1009, LOCALE_SLONGDATE, buf, 256);
我认为.NET 4.0现在使用的是Windows语言环境信息,而不是依赖于自己的表。然而,没有什么比文化数据更快的变化。如果您认为这是不正确的,那么您可以在connect.microsoft.com上提交反馈     

要回复问题请先登录注册