DotNet · 2022年2月26日

区域性名称和标识符

域性名称遵循 RFC 1766
标准,格式为“<languagecode2>-<country/regioncode2>”,其中
<languagecode2> 是从 ISO 639-1 派生的由两个小写字母构成的代码,<country/regioncode2>
是从 ISO 3166 派生的由两个大写字母构成的代码。例如,美国英语为“en-US”。在双字母语言代码不可用的情况中,将使用从 ISO 639-2
派生的三字母代码;例如,三字母代码“div”用于使用 Dhivehi
语言的区域。某些区域性名称带有指定书写符号的后缀;例如“-Cyrl”指定西里尔语书写符号,“-Latn”指定拉丁语书写符号。

System.Globalization
命名空间中的此类和其他类接受并使用下列预定义的区域性名称和标识符。

区域性名称

区域性标识符

语言-国家/地区

“”(空字符串)

0x007F

固定区域性

af

0x0036

南非荷兰语

af-ZA

0x0436

南非荷兰语 – 南非

sq

0x001C

阿尔巴尼亚语

sq-AL

0x041C

阿尔巴尼亚语 – 阿尔巴尼亚

ar

0x0001

阿拉伯语

ar-DZ

0x1401

阿拉伯语 – 阿尔及利亚

ar-BH

0x3C01

阿拉伯语 – 巴林

ar-EG

0x0C01

阿拉伯语 – 埃及

ar-IQ

0x0801

阿拉伯语 – 伊拉克

ar-JO

0x2C01

阿拉伯语 – 约旦

ar-KW

0x3401

阿拉伯语 – 科威特

ar-LB

0x3001

阿拉伯语 – 黎巴嫩

ar-LY

0x1001

阿拉伯语 – 利比亚

ar-MA

0x1801

阿拉伯语 – 摩洛哥

ar-OM

0x2001

阿拉伯语 – 阿曼

ar-QA

0x4001

阿拉伯语 – 卡塔尔

ar-SA

0x0401

阿拉伯语 – 沙特阿拉伯

ar-SY

0x2801

阿拉伯语 – 叙利亚

ar-TN

0x1C01

阿拉伯语 – 突尼斯

ar-AE

0x3801

阿拉伯语 – 阿拉伯联合酋长国

ar-YE

0x2401

阿拉伯语 – 也门

hy

0x002B

亚美尼亚语

hy-AM

0x042B

亚美尼亚语 – 亚美尼亚

az

0x002C

阿泽里语

az-AZ-Cyrl

0x082C

阿泽里语(西里尔语)- 阿塞拜疆

az-AZ-Latn

0x042C

阿泽里语(拉丁)- 阿塞拜疆

eu

0x002D

巴斯克语

eu-ES

0x042D

巴斯克语 – 巴斯克地区

be

0x0023

白俄罗斯语

be-BY

0x0423

白俄罗斯语 – 白俄罗斯

bg

0x0002

保加利亚语

bg-BG

0x0402

保加利亚语 – 保加利亚

ca

0x0003

加泰罗尼亚语

ca-ES

0x0403

加泰罗尼亚语 – 加泰罗尼亚地区

zh-HK

0x0C04

中文 – 香港特别行政区

zh-MO

0x1404

中文 – 澳门特别行政区

zh-CN

0x0804

中文 – 中国

zh-CHS

0x0004

中文(简体)

zh-SG

0x1004

中文 – 新加坡

zh-TW

0x0404

中文 – 台湾

zh-CHT

0x7C04

中文(繁体)

hr

0x001A

克罗地亚语

hr-HR

0x041A

克罗地亚语 – 克罗地亚

cs

0x0005

捷克语

cs-CZ

0x0405

捷克语 – 捷克共和国

da

0x0006

丹麦语

da-DK

0x0406

丹麦语 – 丹麦

div

0x0065

马尔代夫语

div-MV

0x0465

马尔代夫语 – 马尔代夫

nl

0x0013

荷兰语

nl-BE

0x0813

荷兰语 – 比利时

nl-NL

0x0413

荷兰语 – 荷兰

en

0x0009

英语

en-AU

0x0C09

英语 – 澳大利亚

en-BZ

0x2809

英语 – 伯利兹

en-CA

0x1009

英语 – 加拿大

en-CB

0x2409

英语 – 加勒比

en-IE

0x1809

英语 – 爱尔兰

en-JM

0x2009

英语 – 牙买加

en-NZ

0x1409

英语 – 新西兰

en-PH

0x3409

英语 – 菲律宾

en-ZA

0x1C09

英语 – 南非

en-TT

0x2C09

英语 – 特立尼达和多巴哥

en-GB

0x0809

英语 – 英国

en-US

0x0409

英语 – 美国

en-ZW

0x3009

英语 – 津巴布韦

et

0x0025

爱沙尼亚语

et-EE

0x0425

爱沙尼亚语 – 爱沙尼亚

fo

0x0038

法罗语

fo-FO

0x0438

法罗语 – 法罗群岛

fa

0x0029

波斯语

fa-IR

0x0429

波斯语 – 伊朗

fi

0x000B

芬兰语

fi-FI

0x040B

芬兰语 – 芬兰

fr

0x000C

法语

fr-BE

0x080C

法语 – 比利时

fr-CA

0x0C0C

法语 – 加拿大

fr-FR

0x040C

法语 – 法国

fr-LU

0x140C

法语 – 卢森堡

fr-MC

0x180C

法语 – 摩纳哥

fr-CH

0x100C

法语 – 瑞士

gl

0x0056

加利西亚语

gl-ES

0x0456

加利西亚语 – 加利西亚地区

ka

0x0037

格鲁吉亚语

ka-GE

0x0437

格鲁吉亚语 – 格鲁吉亚

de

0x0007

德语

de-AT

0x0C07

德语 – 奥地利

de-DE

0x0407

德语 – 德国

de-LI

0x1407

德语 – 列支敦士登

de-LU

0x1007

德语 – 卢森堡

de-CH

0x0807

德语 – 瑞士

el

0x0008

希腊语

el-GR

0x0408

希腊语 – 希腊

gu

0x0047

古吉拉特语

gu-IN

0x0447

古吉拉特语 – 印度

he

0x000D

希伯来语

he-IL

0x040D

希伯来语 – 以色列

hi

0x0039

印地语

hi-IN

0x0439

印地语 – 印度

hu

0x000E

匈牙利语

hu-HU

0x040E

匈牙利语 – 匈牙利

is

0x000F

冰岛语

is-IS

0x040F

冰岛语 – 冰岛

id

0x0021

印度尼西亚语

id-ID

0x0421

印度尼西亚语 – 印度尼西亚

it

0x0010

意大利语

it-IT

0x0410

意大利语 – 意大利

it-CH

0x0810

意大利语 – 瑞士

ja

0x0011

日语

ja-JP

0x0411

日语 – 日本

kn

0x004B

卡纳达语

kn-IN

0x044B

卡纳达语 – 印度

kk

0x003F

哈萨克语

kk-KZ

0x043F

哈萨克语 – 哈萨克斯坦

kok

0x0057

贡根语

kok-IN

0x0457

贡根语 – 印度

ko

0x0012

朝鲜语

ko-KR

0x0412

朝鲜语 – 韩国

ky

0x0040

吉尔吉斯语

ky-KG

0x0440

吉尔吉斯语 – 吉尔吉斯坦

lv

0x0026

拉脱维亚语

lv-LV

0x0426

拉脱维亚语 – 拉脱维亚

lt

0x0027

立陶宛语

lt-LT

0x0427

立陶宛语 – 立陶宛

mk

0x002F

马其顿语

mk-MK

0x042F

马其顿语 – 前南斯拉夫联盟马其顿共和国

ms

0x003E

马来语

ms-BN

0x083E

马来语 – 文莱

ms-MY

0x043E

马来语 – 马来西亚

mr

0x004E

马拉地语

mr-IN

0x044E

马拉地语 – 印度

mn

0x0050

蒙古语

mn-MN

0x0450

蒙古语 – 蒙古

no

0x0014

挪威语

nb-NO

0x0414

挪威语(伯克梅尔)- 挪威

nn-NO

0x0814

挪威语(尼诺斯克)- 挪威

pl

0x0015

波兰语

pl-PL

0x0415

波兰语 – 波兰

pt

0x0016

葡萄牙语

pt-BR

0x0416

葡萄牙语 – 巴西

pt-PT

0x0816

葡萄牙语 – 葡萄牙

pa

0x0046

旁遮普语

pa-IN

0x0446

旁遮普语 – 印度

ro

0x0018

罗马尼亚语

ro-RO

0x0418

罗马尼亚语 – 罗马尼亚

ru

0x0019

俄语

ru-RU

0x0419

俄语 – 俄罗斯

sa

0x004F

梵语

sa-IN

0x044F

梵语 – 印度

sr-SP-Cyrl

0x0C1A

塞尔维亚语(西里尔语)- 塞尔维亚

sr-SP-Latn

0x081A

塞尔维亚语(拉丁)- 塞尔维亚

sk

0x001B

斯洛伐克语

sk-SK

0x041B

斯洛伐克语 – 斯洛伐克

sl

0x0024

斯洛文尼亚语

sl-SI

0x0424

斯洛文尼亚语 – 斯洛文尼亚

es

0x000A

西班牙语

es-AR

0x2C0A

西班牙语 – 阿根廷

es-BO

0x400A

西班牙语 – 玻利维亚

es-CL

0x340A

西班牙语 – 智利

es-CO

0x240A

西班牙语 – 哥伦比亚

es-CR

0x140A

西班牙语 – 哥斯达黎加

es-DO

0x1C0A

西班牙语 – 多米尼加共和国

es-EC

0x300A

西班牙语 – 厄瓜多尔

es-SV

0x440A

西班牙语 – 萨尔瓦多

es-GT

0x100A

西班牙语 – 危地马拉

es-HN

0x480A

西班牙语 – 洪都拉斯

es-MX

0x080A

西班牙语 – 墨西哥

es-NI

0x4C0A

西班牙语 – 尼加拉瓜

es-PA

0x180A

西班牙语 – 巴拿马

es-PY

0x3C0A

西班牙语 – 巴拉圭

es-PE

0x280A

西班牙 – 秘鲁

es-PR

0x500A

西班牙语 – 波多黎各

es-ES

0x0C0A

西班牙语 – 西班牙

es-UY

0x380A

西班牙语 – 乌拉圭

es-VE

0x200A

西班牙语 – 委内瑞拉

sw

0x0041

斯瓦希里语

sw-KE

0x0441

斯瓦希里语 – 肯尼亚

sv

0x001D

瑞典语

sv-FI

0x081D

瑞典语 – 芬兰

sv-SE

0x041D

瑞典语 – 瑞典

syr

0x005A

叙利亚语

syr-SY

0x045A

叙利亚语 – 叙利亚

ta

0x0049

泰米尔语

ta-IN

0x0449

泰米尔语 – 印度

tt

0x0044

鞑靼语

tt-RU

0x0444

鞑靼语 – 俄罗斯

te

0x004A

泰卢固语

te-IN

0x044A

泰卢固语 – 印度

th

0x001E

泰语

th-TH

0x041E

泰语 – 泰国

tr

0x001F

土耳其语

tr-TR

0x041F

土耳其语 – 土耳其

uk

0x0022

乌克兰语

uk-UA

0x0422

乌克兰语 – 乌克兰

ur

0x0020

乌尔都语

ur-PK

0x0420

乌尔都语 – 巴基斯坦

uz

0x0043

乌兹别克语

uz-UZ-Cyrl

0x0843

乌兹别克语(西里尔语)- 乌兹别克斯坦

uz-UZ-Latn

0x0443

乌兹别克语(拉丁)- 乌兹别克斯坦

vi

0x002A

越南语

vi-VN

0x042A

越南语 – 越南

固定区域性、非特定区域性和特定区域性

这些区域性通常分为三个集合:固定区域性、非特定区域性和特定区域性。

固定区域性不区分区域性。可以使用空字符串 (“”) 按名称或者按区域性标识符 0x007F 来指定固定区域性。InvariantCulture
检索固定区域性的实例。它与英语语言关联,但不与任何国家/地区关联。它几乎可用在要求区域性的“全局化”命名空间中的所有方法中。

非特定区域性是与某种语言关联但不与国家/地区关联的区域性。特定区域性是与某种语言和某个国家/地区关联的区域性。例如,“fr”是非特定区域性,而“fr-FR”是特定区域性。注意,“zh-CHS”(简体中文)和“zh-CHT”(繁体中文)均为非特定区域性。

请注意,不建议为非特定区域性创建 CompareInfo
类的实例,这是因为它包含的数据是任意的。若要显示数据并对其进行排序,请同时指定语言和地区。此外,为非特定区域性创建的 CompareInfo
对象的 Name
属性仅返回国家,且不包括地区。

区域性有层次结构,即特定区域性的父级是非特定区域性,而非特定区域性的父级是 InvariantCultureParent
属性将返回与特定区域性关联的非特定区域性。

如果特定区域性的资源在系统中不可用,则使用非特定区域性的资源;如果非特定区域性的资源也不可用,那么使用主程序集中嵌入的资源。有关资源备用进程的更多信息,请参见“打包和部署资源”。

Windows API 中的区域性列表与 .NET Framework 中的区域性列表略有不同。例如,在 Windows API 中未提供带有区域性标识符
0x7C04 的非特定区域性 zh-CHT“中文(繁体)”。如果需要具备同 Windows 进行互操作的能力(例如,通过 p/invoke
机制),可使用在操作系统中定义的特定区域性。这样可以确保与等效的 Windows 区域设置保持一致,它们使用同一 LCID
进行标识。

只能为固定区域性或特定区域性创建 DateTimeFormatInfo
NumberFormatInfo,而不能为非特定区域性创建它们。

如果 DateTimeFormatInfo.Calendar
TaiwanCalendar,但
Thread.CurrentCulture
不是“zh-TW”,则 DateTimeFormatInfo.NativeCalendarNameDateTimeFormatInfo.GetEraName
DateTimeFormatInfo.GetAbbreviatedEraName
将返回一个空字符串 (“”)。

Windows 区域设置

从 .NET Framework 2.0 版开始,CultureInfo
构造函数支持使用 Windows 区域设置(相当于区域性)自动生成 .NET Framework 中不存在的区域性。有关更多信息,请参见 根据 Windows
区域设置生成区域性

控制面板重写

用户可以通过“控制面板”中的“区域和语言选项”(或“区域选项”或“区域设置”)选择重写某些与 Windows
的当前区域性关联的值。例如,用户可能选择以另一种格式显示日期,或选择使用区域性默认设置以外的货币。

如果 UseUserOverride
true 并且指定的区域性与当前 Windows 的区域性匹配,则 CultureInfo
使用那些重写,包括以下属性的用户设置:由 DateTimeFormat
属性返回的 DateTimeFormatInfo 实例的属性以及由 NumberFormat
属性返回的 NumberFormatInfo 实例的属性。如果用户设置与 CultureInfo
的关联区域性不兼容(例如选定的日历不属于 OptionalCalendars
其中之一),则方法结果和属性值是未定义的。

对于使用欧元的区域性,.NET Framework 和 Windows XP 将默认货币设置为欧元;但是,旧版本的 Windows
却不是这样。因此,如果旧版本 Windows 的用户未通过“控制面板”中的“区域选项”或“区域设置”更改货币设置,则货币可能不正确。若要使用 .NET
Framework 的货币的默认设置,请使用接受 useUserOverride
参数的 CultureInfo 构造函数重载,并将该参数设置为 false

备用排序顺序

“西班牙语 – 西班牙”的区域性标识符“0x0c0a”使用默认的国际排序顺序;而区域性标识符“0x040A”(也指“西班牙语 –
西班牙”)则使用传统排序顺序。如果使用“es-ES”区域性名称构造 CultureInfo,则新的 CultureInfo
将使用默认的国际排序顺序。要构造一个使用传统排序顺序的
CultureInfo,可在构造函数中使用区域性标识符“0x040A”。有关具有备用排序方法的其他区域性的更多信息,请参见“针对特定区域性对数据进行比较和排序”。

实现的接口

该类实现 ICloneable
接口以启用 CultureInfo 对象的复制。它还实现 IFormatProvider
以便为应用程序提供格式化信息。

区域性、线程和应用程序域

在使用与 CultureInfo 对象关联的线程时有着特殊的注意事项。有关区域性和应用程序域的更多信息,请参见 应用程序域和线程

最新电影,电视剧,尽在午夜剧场

电影电视剧午夜不寂寞