提供特定文化特性 (Culture) 的相關資訊。提供的資訊包括文化特性的名稱、書寫系統、使用的曆法、數字和日期使用的格式,以及排序字串的順序。
<ComVisibleAttribute(True)> _ Public Class CultureInfo _ Implements ICloneable, IFormatProvider
Dim instance As CultureInfo
[ComVisibleAttribute(true)] public class CultureInfo : ICloneable, IFormatProvider
CultureInfo 類別 (Class) 會提供特定文化特性的資訊,例如相關的語言、次語言 (Sublanguage)、國家/地區、曆法和文化慣例。這個類別也提供對 DateTimeFormatInfo、NumberFormatInfo、CompareInfo 和 TextInfo 的特定文化特性執行個體的存取。這些物件包含特定文化特性作業所需的資訊,例如大小寫的指定、日期和數字的格式化,以及字串的比較。
String 類別的成員會直接或間接使用這個類別來取得預設文化特性的資訊。
不是 CultureInfo..::.InvariantCulture 的 CultureInfo 物件會從作業系統擷取其資料。因此,個別 CultureInfo 屬性的值不僅因作業系統而不同,還會因相同作業系統的各種版本而有所不同。
CultureInfo 類別會根據 RFC 4646 (Windows Vista (含) 以後版本),指定每個文化特性的唯一名稱。這個名稱是語言相關的 ISO 639 雙字母小寫文化特性代碼以及國家或地區相關的 ISO 3166 雙字母大寫子文化特性代碼之組合。文化特性名稱的格式為 "languagecode-country/regioncode";其中 languagecode 是語言代碼,而 country/regioncode 則是子文化特性代碼。實際範例包括 "ja-JP" 和 "en-US",前者代表日文 (日本),後者則代表英文 (美國)。在沒有雙字母語言代碼的情況下,將會改用衍生自 ISO 639-2 的三個字母的代碼。
某些文化特性名稱會同時指定 ISO 15924 字集。例如,"-Cyrl" 指定斯拉夫文指令碼,而 "-Latn" 則指定拉丁文指令碼。包含字集的文化特性名稱會使用 "languagecode-scripttag-country/regioncode" 模式來呈現。代表烏茲別克文 (烏茲別克,斯拉夫) 的 "uz-Cyrl-UZ" 就是這種文化特性名稱類型的一個例子。
僅使用雙字母小寫語言代碼指定的是中性文化特性 (由語言所定義、不含特定國家/地區的文化特性)。例如,"fr" 指定的是法文的中性文化特定,而 "de" 是指定德文的中性文化特性。
有兩個文化特性名稱與這項規則不符;文化特性 "zh-Hans" (簡體中文) 和 "zh-Hant" (繁體中文) 都是中性文化特性。
下表列出 .NET Framework for Silverlight 可辨識且可用於具現化 CultureInfo 物件的預先定義文化特性名稱。但因為 .NET Framework for Silverlight 會從作業系統擷取文化特性資訊,文化特性資訊的可用性可能會根據平台和作業系統版本而有所不同。
文化特性/語言名稱
Culture
"" (空字串)
非變異文化特性 (Invariant Culture)
af
南非荷蘭文
af-ZA
南非荷蘭文 (南非)
sq
阿爾巴尼亞文
sq-AL
阿爾巴尼亞文 (阿爾巴尼亞)
ar
阿拉伯文
ar-DZ
阿拉伯文 (阿爾及利亞)
ar-BH
阿拉伯文 (巴林)
ar-EG
阿拉伯文 (埃及)
ar-IQ
阿拉伯文 (伊拉克)
ar-JO
阿拉伯文 (約旦)
ar-KW
阿拉伯文 (科威特)
ar-LB
阿拉伯文 (黎巴嫩)
ar-LY
阿拉伯文 (利比亞)
ar-MA
阿拉伯文 (摩洛哥)
ar-OM
阿拉伯文 (阿曼)
ar-QA
阿拉伯文 (卡達)
ar-SA
阿拉伯文 (沙烏地阿拉伯)
ar-SY
阿拉伯文 (敘利亞)
ar-TN
阿拉伯文 (突尼西亞)
ar-AE
阿拉伯文 (阿拉伯聯合大公國)
ar-YE
阿拉伯文 (葉門)
hy
亞美尼亞文
hy-AM
亞美尼亞文 (亞美尼亞)
az
阿澤里文
az-Cyrl-AZ
阿澤里文 (亞塞拜然,斯拉夫)
az-Latn-AZ
阿澤里文 (亞塞拜然,拉丁)
eu
巴斯克文
eu-ES
巴斯克文 (巴斯克)
be
白俄羅斯文
be-BY
白俄羅斯文 (白俄羅斯)
bg
保加利亞文
bg-BG
保加利亞文 (保加利亞)
ca
卡達隆尼亞文
ca-ES
卡達隆尼亞文 (西班牙卡達隆尼亞)
zh-HK
中文 (香港特別行政區,中華人民共和國)
zh-MO
中文 (澳門特別行政區)
zh-CN
中文 (中華人民共和國)
zh-Hans
中文 (簡體)
zh-SG
中文 (新加坡)
zh-TW
中文 (台灣)
zh-Hant
中文 (繁體)
hr
克羅埃西亞文
hr-BA
克羅埃西亞文 (波士尼亞赫塞哥維納)
hr-HR
克羅埃西亞文 (克羅埃西亞)
cs
捷克文
cs-CZ
捷克文 (捷克共和國)
da
丹麥文
da-DK
丹麥文 (丹麥)
dv
迪維西文
dv-MV
迪維西文 (馬爾地夫)
nl
荷蘭文
nl-BE
荷蘭文 (比利時)
nl-NL
荷蘭文 (荷蘭)
en
英文
en-AU
英文 (澳大利亞)
en-BZ
英文 (貝里斯)
en-CA
英文 (加拿大)
en-029
英文 (加勒比海)
en-IE
英文 (愛爾蘭)
en-JM
英文 (牙買加)
en-NZ
英文 (紐西蘭)
en-PH
英文 (菲律賓)
en-ZA
英文 (南非)
en-TT
英文 (千里達及托巴哥)
en-GB
英文 (英國)
en-US
英文 (美國)
en-ZW
英文 (辛巴威)
et
愛沙尼亞文
et-EE
愛沙尼亞文 (愛沙尼亞)
fo
法羅文
fo-FO
法羅文 (法羅群島)
fa
波斯文
fa-IR
波斯文 (伊朗)
fi
芬蘭文
fi-FI
芬蘭文 (芬蘭)
fr
法文
fr-BE
法文 (比利時)
fr-CA
法文 (加拿大)
fr-FR
法文 (法國)
fr-LU
法文 (盧森堡)
fr-MC
法文 (摩納哥)
fr-CH
法文 (瑞士)
gl
加里斯亞文
gl-ES
加里斯亞文 (西班牙)
ka
喬治亞文
ka-GE
喬治亞文 (喬治亞)
de
德文
de-AT
德文 (奧地利)
de-DE
德文 (德國)
de-DE_phoneb
德文 (德國,電話簿排序)
de-LI
德文 (列支敦斯登)
de-LU
德文 (盧森堡)
de-CH
德文 (瑞士)
el
希臘文
el-GR
希臘文 (希臘)
gu
古吉拉特文
gu-IN
古吉拉特文 (印度)
he
希伯來文
he-IL
希伯來文 (以色列)
hi
印度文
hi-IN
印度文 (印度)
hu
匈牙利文
hu-HU
匈牙利文 (匈牙利)
為
冰島文
is-IS
冰島文 (冰島)
id
印尼文
id-ID
印尼文 (印尼)
it
義大利文
it-IT
義大利文 (義大利)
it-CH
義大利文 (瑞士)
ja
日文
ja-JP
日文 (日本)
kn
坎那達文
kn-IN
坎那達文 (印度)
kk
哈薩克文
kk-KZ
哈薩克文 (哈薩克)
kok
貢根文
kok-IN
貢根文 (印度)
ko
韓文
ko-KR
韓文 (韓國)
ky
吉爾吉斯文
ky-KG
吉爾吉斯文 (吉爾吉斯)
lv
拉脫維亞文
lv-LV
拉脫維亞文 (拉脫維亞)
lt
立陶宛文
lt-LT
立陶宛文 (立陶宛)
mk
馬其頓共和國文
mk-MK
馬其頓共和國文 (馬其頓,馬其頓共和國)
ms
馬來文
ms-BN
馬來文 (汶萊)
ms-MY
馬來文 (馬來西亞)
mr
馬拉提文
mr-IN
馬拉提文 (印度)
mn
蒙古文
mn-MN
蒙古文 (蒙古)
否
挪威文
nb-NO
挪威文 (巴克摩,挪威)
nn-NO
挪威文 (耐諾斯克,挪威)
pl
波蘭文
pl-PL
波蘭文 (波蘭)
pt
葡萄牙文
pt-BR
葡萄牙文 (巴西)
pt-PT
葡萄牙文 (葡萄牙)
pa
旁遮普語
pa-IN
旁遮普語 (印度)
ro
羅馬尼亞文
ro-RO
羅馬尼亞文 (羅馬尼亞)
ru
俄文
ru-RU
俄文 (俄羅斯)
sa
梵文
sa-IN
梵文 (印度)
sr-Cyrl-CS
塞爾維亞文 (塞爾維亞,斯拉夫)
sr-Latn-CS
塞爾維亞文 (塞爾維亞,拉丁)
sk
斯洛伐克文
sk-SK
斯洛伐克文 (斯洛伐克)
sl
斯洛維尼亞文
sl-SI
斯洛維尼亞文 (斯洛維尼亞)
es
西班牙文
es-AR
西班牙文 (阿根廷)
es-BO
西班牙文 (玻利維亞)
es-CL
西班牙文 (智利)
es-CO
西班牙文 (哥倫比亞)
es-CR
西班牙文 (哥斯大黎加)
es-DO
西班牙文 (多明尼加)
es-EC
西班牙文 (厄瓜多)
es-SV
西班牙文 (薩爾瓦多)
es-GT
西班牙文 (瓜地馬拉)
es-HN
西班牙文 (宏都拉斯)
es-MX
西班牙文 (墨西哥)
es-NI
西班牙文 (尼加拉瓜)
es-PA
西班牙文 (巴拿馬)
es-PY
西班牙文 (巴拉圭)
es-PE
西班牙文 (秘魯)
es-PR
西班牙文 (波多黎各)
es-ES
西班牙文 (西班牙)
es-ES_tradnl
西班牙文 (西班牙,傳統式排序)
es-UY
西班牙文 (烏拉圭)
es-VE
西班牙文 (委內瑞拉)
sw
史瓦西里文
sw-KE
斯瓦希里文 (肯亞)
sv
瑞典文
sv-FI
瑞典文 (芬蘭)
sv-SE
瑞典文 (瑞典)
syr
敘利亞文
syr-SY
敘利亞文 (敘利亞)
ta
坦米爾文
ta-IN
坦米爾文 (印度)
tt
韃靼文
tt-RU
韃靼文 (俄羅斯)
te
特拉古文
te-IN
特拉古文 (印度)
th
泰文
th-TH
泰文 (泰國)
tr
土耳其文
tr-TR
土耳其文 (土耳其)
uk
烏克蘭文
uk-UA
烏克蘭文 (烏克蘭)
ur
烏都文
ur-PK
烏都文 (巴基斯坦)
uz
烏茲別克文
uz-Cyrl-UZ
烏茲別克文 (烏茲別克,斯拉夫)
uz-Latn-UZ
烏茲別克文 (烏茲別克,拉丁)
vi
越南文
vi-VN
越南文 (越南)
多個不同的名稱都與某個文化特性緊密關聯,這些名稱與下列類別成員的關聯尤其明顯:
CultureInfo..::.ToString
這通常是傳遞至 CultureInfo 類別建構函式之字串的「正規化」版本。它的語言元件一定是小寫,而且國家/地區元件一定是大寫。
CultureInfo..::.Name
這個名稱表示 CultureInfo 物件的語言和國家/地區元件,以及字集 (如果有的話)。如果 CultureInfo 物件是以定義特定排序次序的字串所具現化,這個名稱不會包含排序次序資訊。
CompareInfo..::.Name
這個名稱表示語言和國家/地區元件、字集元件 (如果有的話) 以及排序次序的指示 (如果相關)。
文化特性通常可分為三組:非變異文化特性、中性文化特性和特定文化特性。
非變異文化特性不會區分文化特性。應用程式會使用空字串 (""),依名稱或是依其語言識別項來指定非變異文化特性。InvariantCulture 可定義非變異文化特性的執行個體 (Instance)。它會與英語相關聯,但不會與國別/區域相關聯。它幾乎用於要求文化特性的 System.Globalization 命名空間中的所有方法。
中性文化特性是與語言相關聯的文化特性,但不與國別/區域相關聯。特定文化特性是與語言和國別/區域相關聯的文化特性。例如,"fr" 是中性文化特性,而 "fr-FR" 是特定文化特性。請注意 "zh-Hans" (簡體中文) 和 "zh-Hant" (繁體中文) 都是中性文化特性。
不建議您針對中性文化特性建立 CompareInfo 類別的執行個體,因為它所包含的資料是任意的。若要顯示並排序資料,請同時指定語言和地區。
定義的文化特性具有下列階層架構:特定文化特性的父項是中性文化特性,而中性文化特性的父項則是非變異文化特性。Parent 屬性包含與特定文化特性相關聯的中性文化特性。自訂文化特性應該會遵照這個模式來定義 Parent 屬性。
如果 DateTimeFormatInfo..::.Calendar 為 TaiwanCalendar,但是 Thread..::.CurrentCulture 並非 "zh-TW",DateTimeFormatInfo..::.GetEraName 和 DateTimeFormatInfo..::.GetAbbreviatedEraName 會傳回空字串 ("")。
準備軟體處理自訂文化特性時,請考慮下列各項:
自訂文化特性的值可能會超出 Microsoft 所提供文化特性的範圍。例如,某些文化特性會有異常長的月份名稱、未預期的日期或時間格式,或其他不常見的資料。
考量使用者的文化特性資料值,例如,使用者可能會想要使用 24 小時時鐘或 yyyyMMdd 日期格式。
請記住,自訂文化特性會覆寫預設值。因此,請勿將文化特性資料視為穩定值。國家名稱、日期格式和拼法未來都可能會變更。
除了非變異文化特性,文化特性資料都是動態的。這一點甚至連預先定義的文化特性也一樣。例如,國家或地區會採用新貨幣、變更字組的拼法或變更慣用的曆法,而文化特性定義也會跟著變更,以追蹤前述變化。自訂文化特性得不經通知逕行變更,而且任何特定的文化特性都有可能遭到自訂的取代文化特性所覆寫。個人使用者也可以覆寫文化特性偏好設定。應用程式一律應該在執行階段取得文化特性資料。
這個類別會實作 IFormatProvider,提供格式資訊給應用程式。
下列範例會判斷每個使用中文之特定文化特性的父文化特性。
Imports System.Globalization Public Class Example Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock) ' Prints the header. outputBlock.FontFamily = New System.Windows.Media.FontFamily("Courier New") outputBlock.Text &= "SPECIFIC CULTURE PARENT CULTURE" & vbCrLf ' Create an array of Chinese culture names. Dim cultureNames() As String = { "zh-CN", "zh-Hans", "zh-Hant", "zh-HK", _ "zh-MO", "zh-SG", "zh-TW" } ' Determines the specific cultures that use the Chinese language, and displays the parent culture. For Each cultureName As String In cultureNames Dim ci As New CultureInfo(cultureName) outputBlock.Text &= String.Format("{0,-7} {1,-37}", ci.Name, ci.EnglishName) outputBlock.Text &= String.Format("{0,-7} {1}", ci.Parent.Name, ci.Parent.EnglishName) & vbCrLf Next End Sub End Class ' This example produces the following output. ' SPECIFIC CULTURE PARENT CULTURE ' zh-CN Chinese (People's Republic of China) zh-Hans Chinese ' zh-Hans Chinese Invariant Language (Invariant Country) ' zh-Hant Chinese Invariant Language (Invariant Country) ' zh-HK Chinese (Hong Kong S.A.R.) zh-Hant Chinese ' zh-MO Chinese (Macao S.A.R.) zh-Hant Chinese ' zh-SG Chinese (Singapore) zh-Hans Chinese ' zh-TW Chinese (Taiwan) zh-Hant Chinese
using System; using System.Globalization; public class Example { public static void Demo(System.Windows.Controls.TextBlock outputBlock) { // Displays the header. outputBlock.FontFamily = new System.Windows.Media.FontFamily("Courier New"); outputBlock.Text += "SPECIFIC CULTURE PARENT CULTURE" + "\n"; // Create an array of Chinese culture names. string[] cultureNames = { "zh-CN", "zh-Hans", "zh-Hant", "zh-HK", "zh-MO", "zh-SG", "zh-TW", }; // Determines the specific cultures that use the Chinese language, and displays the parent culture. foreach (string cultureName in cultureNames) { CultureInfo ci = new CultureInfo(cultureName); outputBlock.Text += String.Format("{0,-7} {1,-37}", ci.Name, ci.EnglishName); outputBlock.Text += String.Format("{0,-7} {1}\n", ci.Parent.Name, ci.Parent.EnglishName); } } } /* This example produces the following output. SPECIFIC CULTURE PARENT CULTURE zh-CN Chinese (People's Republic of China) zh-Hans Chinese zh-Hans Chinese Invariant Language (Invariant Country) zh-Hant Chinese Invariant Language (Invariant Country) zh-HK Chinese (Hong Kong S.A.R.) zh-Hant Chinese zh-MO Chinese (Macao S.A.R.) zh-Hant Chinese zh-SG Chinese (Singapore) zh-Hans Chinese zh-TW Chinese (Taiwan) zh-Hant Chinese */
如需 Silverlight 支援之作業系統和瀏覽器的清單,請參閱 支援的作業系統和瀏覽器。