不支持区域性.参数名称:名称 US 是无效的区域性标识符
本文关键字:区域性 无效 标识符 US 参数 不支持 名称 | 更新日期: 2023-09-27 18:30:19
我尝试使用 ISO-3166 两个字母的国家/地区代码来创建我的 C# 区域性信息对象,以根据区域设置设置我的 datetime
对象的格式。
如果我尝试:
var cultureInfo = new CultureInfo("FR");
如果我尝试,它工作正常:
var cultureInfo = new CultureInfo("US");
它抛出一个异常:
不支持区域性。参数名称:名称 US 无效 区域性标识符。
有趣的是,"US"是有效的ISO-3166国家代码。
来自CultureInfo(string)
构造函数文档;
有关预定义区域性名称的列表,请参阅本地语言 支持 (NLS) API 参考
也来自CultureInfo.TwoLetterISOLanguageName
财产
例如,英语的两个字母缩写是
en
。
没有定义US
,但可以使用en
(如果您真的必须使用两个字母名称)。所有这些都在ISO 639-1标准中定义。
var cultureInfo = new CultureInfo("en");
因为US
不是有效的区域性名称,而 FR 是。CultureInfo的构造函数不接受国家/地区代码作为参数。它需要"区域性名称"。
有关有效的区域性名称,请参阅此 msdn 页中的表。
构造函数CultureInfo
参数不是 ISO-3166 代码,而是预定义的区域性名称
来自 MSDN 关于CultureInfo
的文章:
有关预定义区域性名称的列表,请参阅本地语言 Go Global 开发人员中心的支持 (NLS) API 参考。
在提到的参考文献中没有us
文化,但有en-US
,所以你必须使用ut。