首页 文章

文化不受支持 . 参数名称:name US是无效的区域性标识符

提问于
浏览
2

我尝试使用ISO-3166双字母国家代码来创建我的C#文化信息对象,以根据区域设置格式化我的 datetime 对象 .

如果我尝试:

var cultureInfo = new CultureInfo("FR");

它工作正常,如果我尝试:

var cultureInfo = new CultureInfo("US");

它引发了一个异常:

不支持文化 . 参数名称:name US是无效的区域性标识符 .

有趣的是,“US”是一个有效的ISO-3166国家代码 .

4 回答

  • -1

    来自CultureInfo(string) constructor文件;

    有关预定义文化名称的列表,请参阅本地语言支持(NLS)API参考

    也来自CultureInfo.TwoLetterISOLanguageName Property

    例如,英文的双字母缩写是en .

    没有定义 US 但是 en (如果你真的必须使用两个字母的名字)你可以使用它 . 所有这些都在ISO 639-1 standard中定义 .

    var cultureInfo = new CultureInfo("en");
    
  • 1

    因为 US 不是有效的文化名称而FR是 . CultureInfo 's constructor doesn' t接受国家/地区代码作为参数 . 它期待"Culture Name" .

    有关有效的区域性名称,请参阅此msdn page中的表格 .

  • 1

    CultureInfo 构造函数的参数不是ISO-3166代码,而是预定义的文化名称

    来自MSDN关于 CultureInfo 的文章:

    有关预定义文化名称的列表,请参阅Go Global开发人员中心的国家语言支持(NLS)API参考 .

    在提到的参考文献中没有 us 文化,但有 en-US ,所以你必须使用ut .

  • 5

    使用

    var cultureInfo = new CultureInfo("en-US");
    

相关问题