我尝试使用ISO-3166双字母国家/地区代码来创建我的C#文化信息对象,以根据区域设置格式化我的datetime
对象。
如果我尝试:
var cultureInfo = new CultureInfo("FR");
如果我尝试,它可以正常工作:
var cultureInfo = new CultureInfo("US");
它引发了异常:
不支持文化。参数名称:名称US无效 文化标识符。
有趣的是"美国"是有效的ISO-3166国家/地区代码。
答案 0 :(得分:6)
来自CultureInfo(string)
constructor文档;
有关预定义文化名称的列表,请参阅National Language Support (NLS) API Reference
同样来自CultureInfo.TwoLetterISOLanguageName
Property
例如,英文的双字母缩写为
en
。
没有定义US
,但有en
(如果你真的必须使用两个字母名称),你可以使用它。所有这些都在ISO 639-1 standard中定义。
var cultureInfo = new CultureInfo("en");
答案 1 :(得分:1)
HtmlUnit
构造函数的参数不是ISO-3166代码,而是预定义的文化名称
关于CultureInfo
的{{3}}文章:
有关预定义文化名称的列表,请参阅国家语言 Go全球开发人员中心支持(NLS)API MSDN。
在提到的参考文献中没有CultureInfo
文化,但有us
,所以你必须使用ut。
答案 2 :(得分:1)
因为en-US
不是有效的文化名称而FR是。 CultureInfo的构造函数不接受国家/地区代码作为参数。它期待"文化名称"。
请参阅此Reference中的表格,了解有效的文化名称。
答案 3 :(得分:-1)
使用
var cultureInfo = new CultureInfo("en-US");