按一下以給予評分及指教
全部折疊/全部展開 全部折疊
適用於 Silverlight 的 .NET Framework 類別庫
CultureInfo 類別

提供特定文化特性 (Culture) 的相關資訊。提供的資訊包括文化特性的名稱、書寫系統、使用的曆法、數字和日期使用的格式,以及排序字串的順序。

命名空間:  System.Globalization
組件:  mscorlib (在 mscorlib.dll 中)
Visual Basic (宣告)
<ComVisibleAttribute(True)> _
Public Class CultureInfo _
    Implements ICloneable, IFormatProvider
Visual Basic (使用方式)
Dim instance As CultureInfo
C#
[ComVisibleAttribute(true)]
public class CultureInfo : ICloneable, 
    IFormatProvider

CultureInfo 類別 (Class) 會提供特定文化特性的資訊,例如相關的語言、次語言 (Sublanguage)、國家/地區、曆法和文化慣例。這個類別也提供對 DateTimeFormatInfoNumberFormatInfoCompareInfoTextInfo 的特定文化特性執行個體的存取。這些物件包含特定文化特性作業所需的資訊,例如大小寫的指定、日期和數字的格式化,以及字串的比較。

String 類別的成員會直接或間接使用這個類別來取得預設文化特性的資訊。

注意注意事項:

不是 CultureInfo..::.InvariantCultureCultureInfo 物件會從作業系統擷取其資料。因此,個別 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..::.CalendarTaiwanCalendar,但是 Thread..::.CurrentCulture 並非 "zh-TW",DateTimeFormatInfo..::.GetEraNameDateTimeFormatInfo..::.GetAbbreviatedEraName 會傳回空字串 ("")。

自訂文化特性

準備軟體處理自訂文化特性時,請考慮下列各項:

  • 自訂文化特性的值可能會超出 Microsoft 所提供文化特性的範圍。例如,某些文化特性會有異常長的月份名稱、未預期的日期或時間格式,或其他不常見的資料。

  • 考量使用者的文化特性資料值,例如,使用者可能會想要使用 24 小時時鐘或 yyyyMMdd 日期格式。

  • 請記住,自訂文化特性會覆寫預設值。因此,請勿將文化特性資料視為穩定值。國家名稱、日期格式和拼法未來都可能會變更。

動態文化特性資料

除了非變異文化特性,文化特性資料都是動態的。這一點甚至連預先定義的文化特性也一樣。例如,國家或地區會採用新貨幣、變更字組的拼法或變更慣用的曆法,而文化特性定義也會跟著變更,以追蹤前述變化。自訂文化特性得不經通知逕行變更,而且任何特定的文化特性都有可能遭到自訂的取代文化特性所覆寫。個人使用者也可以覆寫文化特性偏好設定。應用程式一律應該在執行階段取得文化特性資料。

已實作的介面

這個類別會實作 IFormatProvider,提供格式資訊給應用程式。

TopicLocation
HOW TO:以程式設計方式擷取資源值建置 ASP .NET Web 應用程式
HOW TO:以程式設計方式擷取資源值在 Visual Studio 中建立 ASP .NET Web 應用程式
HOW TO:建立 ASP.NET Web 網頁的資源檔 (Visual Studio)在 Visual Studio 中建置 ASP .NET Web 應用程式
HOW TO:建立 ASP.NET Web 網頁的資源檔 (Visual Studio)在 Visual Studio 中建立 ASP .NET Web 應用程式
HOW TO:建立 ASP.NET 網站的資源檔建置 ASP .NET Web 應用程式
HOW TO:設定 ASP.NET Web 網頁全球化的文化特性和 UI 文化特性建置 ASP .NET Web 應用程式
HOW TO:設定 ASP.NET Web 網頁全球化的文化特性和 UI 文化特性在 Visual Studio 中建立 ASP .NET Web 應用程式
HOW TO:針對全球化使用 HTML 標記由右至左顯示文字建置 ASP .NET Web 應用程式
HOW TO:針對全球化使用 HTML 標記由右至左顯示文字在 Visual Studio 中建立 ASP .NET Web 應用程式

下列範例會判斷每個使用中文之特定文化特性的父文化特性。

Visual Basic
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 
C#
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 
*/
System..::.Object
  System.Globalization..::.CultureInfo
這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。

如需 Silverlight 支援之作業系統和瀏覽器的清單,請參閱 支援的作業系統和瀏覽器

Silverlight

支援版本:4、3

Silverlight for Windows Phone

支援版本:Windows Phone OS 7.0
社群內容   什麼是社群內容?
新增內容 RSS  註解
挪威文      Arith Hsu   |   編輯   |   顯示記錄
CultureInfo 表格裡挪威文的語言名稱誤翻為「否」了。實際上應為「no」。
標示為 ContentBug
Processing
© 2012 Microsoft. 著作權所有,並保留一切權利。 使用規定 | 商標 | 隱私權聲明
Page view tracker