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
The long date for culture "en-ca" is MMMM-dd-yy . This is correct and I have verified this with documentation. You can verify the result in .NET by doing the following.
Dim culture As CultureInfo = CultureInfo.GetCultureInfo("en-ca")
MsgBox(culture.DateTimeFormat.LongDatePattern)
I am trying to figure out why there is a difference with the NLS API which will return "MMMMM d, yyyy"as the default long date. This is incorrect. Am I missing something here? I'm just curious if anyone knows the specifics around this.
NLS API Reference:
http://msdn.microsoft.com/en-us/goglobal/bb896001.aspx
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这在 .NET 3.5SP1 和 .NET 4.0 之间发生了变化。 .NET 3.5 生成 MMMM d,yyyy,与记录的 Vista NLS 值相同。
.NET 4.0 生成 MMMM-dd-yy。与我在 Win7 上使用 GetLocaleInfo() 时得到的结果相同:
我认为 .NET 4.0 现在使用 Windows 区域设置信息,而不是依赖其自己的表。然而,没有什么比文化数据变化得更快。如果您认为这是不正确的,那么您可以在 connect.microsoft.com 提交反馈
This has changed between .NET 3.5SP1 and .NET 4.0. .NET 3.5 produces MMMM d,yyyy, same as the documented Vista NLS value.
.NET 4.0 produces MMMM-dd-yy. Same as what I get when I use GetLocaleInfo() on Win7 with:
I think .NET 4.0 is now using the Windows locale info instead of relying on its own tables. Nevertheless, nothing changes as fast as culture data. If you think this is incorrect then you can submit feedback at connect.microsoft.com