大家好,又见面了,我是你们的朋友全栈君。
CultureInfo 類別
提供特定文化特性 (Culture) 的相關資訊,如文化特性名稱、書寫系統、使用的行事曆,以及如何格式化日期和排序字串。
命名空間: System.Globalization
組件: mscorlib (在 mscorlib.dll 中)
[SerializableAttribute] [ComVisibleAttribute(true)] public class CultureInfo : ICloneable, IFormatProvider
/** @attribute SerializableAttribute() */ /** @attribute ComVisibleAttribute(true) */ public class CultureInfo implements ICloneable, IFormatProvider
SerializableAttribute ComVisibleAttribute(true) public class CultureInfo implements ICloneable, IFormatProvider
CultureInfo 類別具有特定文化特性的資訊,例如相關的語言、次語言 (Sublanguage)、國家/地區、曆法和文化慣例。這個類別也提供對 DateTimeFormatInfo、NumberFormatInfo、CompareInfo 和 TextInfo 的特定文化特性執行個體的存取。這些物件包含特定文化特性作業所需的資訊,例如大小寫的指定、日期和數字的格式化,以及字串的比較。
String 類別間接使用這個類別來取得預設文化特性的資訊。
文化特性名稱和識別項
文化特性名稱遵循 “<languagecode2>-<country/regioncode2>” 格式的 RFC 1766 標準,其中,<languagecode2> 為衍生自 ISO 639-1 的兩個小寫字母代碼,而 <country/regioncode2> 為衍生自 ISO 3166 的兩個大寫字母代碼。例如,美式英語 (U.S. English) 會以 “en-US” 表示。在沒有兩個字母的語言代碼可用的情況下,便要使用衍生自 ISO 639-2 的三字母代碼;例如,三字母代碼「div」用於使用迪培希 (Dhivehi) 語言的文化特性。某些文化特性名稱具有指定指令碼的尾碼;例如,”-Cyrl” 指定斯拉夫文指令碼,”-Latn” 指定拉丁文指令碼。
下列預先定義的文化特性名稱和識別項為 System.Globalization 命名空間中的這個類別 (Class) 和其他類別所接受並使用。
文化特性名稱 | 文化特性識別項 | 語言 – 國家/地區 |
---|---|---|
“” (空字串) | 0x007F | 不變文化特性 (Invariant Culture) |
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 | 蒙古文 – 蒙古 |
否 | 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 會擷取不因文化特性而異的執行個體。它會與英語相關聯,但不會與國別/區域相關聯。它幾乎可用於要求文化特性的 Globalization 命名空間中的所有方法。
中性文化特性是與語言相關聯的文化特性,但不與國別/區域相關聯。特定文化特性是與語言和國別/區域相關聯的文化特性。例如,”fr” 是中性文化特性,而 “fr-FR” 是特定文化特性。請注意 “zh-CHS” (簡體中文) 和 “zh-CHT” (繁體中文) 都是中性文化特性。
請注意,不建議您針對中性文化特性建立 CompareInfo 類別的執行個體,因為它所包含的資料是任意的。若要顯示並排序資料,請同時指定語言和地區。此外,針對中性文化特性所建立之 CompareInfo 物件的 Name 屬性只會傳回國家但不會包含地區。
文化特性具有這樣的階層架構,使得特定文化特性的父項會是中性文化特性,而中性文化特性的父項又是 InvariantCulture。Parent 屬性會傳回與特定文化特性相關聯的中性文化特性。
如果在系統中無法使用特定文化特性的資源,則會使用中性文化特性的資源,如果無法使用中性文化特性的資源,則會使用主要組件的內嵌資源。如需資源回溯過程的詳細資訊,請參閱 封裝和部署資源 (資源的回溯過程)。
Windows API 中的文化特性清單與 .NET Framework 中的文化特性清單稍微不同。例如,Windows API 沒有提供具文化特性識別項 0x7C04 的中性文化特性 zh-CHT「中文 (繁體)」。如果需要有與 Windows 之間的互通性 (例如,透過 p/invoke 機制),請使用作業系統中定義的特定文化特性。這將確保能夠與對等的 Windows 地區設定 (Locale) 一致,該地區設定是用相同的 LCID 來識別。
DateTimeFormatInfo 或 NumberFormatInfo 只可以為不因文化特性而異 (Invariant Culture) 或特定文化特性 (Culture) 建立,而不可為中性文化特性建立。
如果 DateTimeFormatInfo.Calendar 是 TaiwanCalendar,但是 Thread.CurrentCulture 並非 “zh-TW”,則 DateTimeFormatInfo.NativeCalendarName、DateTimeFormatInfo.GetEraName 和 DateTimeFormatInfo.GetAbbreviatedEraName 將傳回空字串 (“”)。
Windows 地區設定
從 .NET Framework 2.0 版開始,CultureInfo 建構函式 (Constructor) 支援使用等同於文化特性的 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,請在建構函式 (Constructor) 中使用文化特性識別項「0x040A」。如需其他具有替代排序順序之文化特性的詳細資訊,請參閱 比較和排序特定文化特性的資料 (使用另一種排序順序)。
已實作的介面
這個類別會實作 ICloneable 介面來啟用 CultureInfo 物件的複製。它也實作 IFormatProvider 來提供格式資訊給應用程式。
文化特性、執行緒和應用程式定義域
使用與 CultureInfo 物件相關聯的執行緒時,有一些獨特的考量事項。如需文化特性和應用程式定義域的詳細資訊,請參閱應用程式定義域和執行緒。
下列程式碼範例顯示如何建立使用國際排序的「西班牙文-西班牙」的 CultureInfo,以及另一個使用傳統排序的 CultureInfo。
using System; using System.Collections; using System.Globalization; public class SamplesCultureInfo { public static void Main() { // Creates and initializes the CultureInfo which uses the international sort. CultureInfo myCIintl = new CultureInfo( "es-ES", false ); // Creates and initializes the CultureInfo which uses the traditional sort. CultureInfo myCItrad = new CultureInfo( 0x040A, false ); // Displays the properties of each culture. Console.WriteLine( "{0,-33}{1,-25}{2,-25}", "PROPERTY", "INTERNATIONAL", "TRADITIONAL" ); Console.WriteLine( "{0,-33}{1,-25}{2,-25}", "CompareInfo", myCIintl.CompareInfo, myCItrad.CompareInfo ); Console.WriteLine( "{0,-33}{1,-25}{2,-25}", "DisplayName", myCIintl.DisplayName, myCItrad.DisplayName ); Console.WriteLine( "{0,-33}{1,-25}{2,-25}", "EnglishName", myCIintl.EnglishName, myCItrad.EnglishName ); Console.WriteLine( "{0,-33}{1,-25}{2,-25}", "IsNeutralCulture", myCIintl.IsNeutralCulture, myCItrad.IsNeutralCulture ); Console.WriteLine( "{0,-33}{1,-25}{2,-25}", "IsReadOnly", myCIintl.IsReadOnly, myCItrad.IsReadOnly ); Console.WriteLine( "{0,-33}{1,-25}{2,-25}", "LCID", myCIintl.LCID, myCItrad.LCID ); Console.WriteLine( "{0,-33}{1,-25}{2,-25}", "Name", myCIintl.Name, myCItrad.Name ); Console.WriteLine( "{0,-33}{1,-25}{2,-25}", "NativeName", myCIintl.NativeName, myCItrad.NativeName ); Console.WriteLine( "{0,-33}{1,-25}{2,-25}", "Parent", myCIintl.Parent, myCItrad.Parent ); Console.WriteLine( "{0,-33}{1,-25}{2,-25}", "TextInfo", myCIintl.TextInfo, myCItrad.TextInfo ); Console.WriteLine( "{0,-33}{1,-25}{2,-25}", "ThreeLetterISOLanguageName", myCIintl.ThreeLetterISOLanguageName, myCItrad.ThreeLetterISOLanguageName ); Console.WriteLine( "{0,-33}{1,-25}{2,-25}", "ThreeLetterWindowsLanguageName", myCIintl.ThreeLetterWindowsLanguageName, myCItrad.ThreeLetterWindowsLanguageName ); Console.WriteLine( "{0,-33}{1,-25}{2,-25}", "TwoLetterISOLanguageName", myCIintl.TwoLetterISOLanguageName, myCItrad.TwoLetterISOLanguageName ); Console.WriteLine(); // Compare two strings using myCIintl. Console.WriteLine( "Comparing \"llegar\" and \"lugar\"" ); Console.WriteLine( " With myCIintl.CompareInfo.Compare: {0}", myCIintl.CompareInfo.Compare( "llegar", "lugar" ) ); Console.WriteLine( " With myCItrad.CompareInfo.Compare: {0}", myCItrad.CompareInfo.Compare( "llegar", "lugar" ) ); } } /* This code produces the following output. PROPERTY INTERNATIONAL TRADITIONAL CompareInfo CompareInfo - 3082 CompareInfo - 1034 DisplayName Spanish (Spain) Spanish (Spain) EnglishName Spanish (Spain) Spanish (Spain) IsNeutralCulture False False IsReadOnly False False LCID 3082 1034 Name es-ES es-ES NativeName español (España) español (España) Parent es es TextInfo TextInfo - 3082 TextInfo - 1034 ThreeLetterISOLanguageName spa spa ThreeLetterWindowsLanguageName ESN ESN TwoLetterISOLanguageName es es Comparing "llegar" and "lugar" With myCIintl.CompareInfo.Compare: -1 With myCItrad.CompareInfo.Compare: 1 */
import System.* ; import System.Collections.* ; import System.Globalization.* ; public class SamplesCultureInfo { public static void main(String[] args) { // Creates and initializes the CultureInfo which uses the // international sort. CultureInfo myCIintl = new CultureInfo("es-ES", false); // Creates and initializes the CultureInfo which uses the // traditional sort. CultureInfo myCItrad = new CultureInfo(0x40A, false); // Displays the properties of each culture. Console.WriteLine("{0,-33}{1,-25}{2,-25}", "PROPERTY", "INTERNATIONAL", "TRADITIONAL"); Console.WriteLine("{0,-33}{1,-25}{2,-25}", "CompareInfo", myCIintl.get_CompareInfo(), myCItrad.get_CompareInfo()); Console.WriteLine("{0,-33}{1,-25}{2,-25}", "DisplayName", myCIintl.get_DisplayName(), myCItrad.get_DisplayName()); Console.WriteLine("{0,-33}{1,-25}{2,-25}", "EnglishName", myCIintl.get_EnglishName(), myCItrad.get_EnglishName()); Console.WriteLine("{0,-33}{1,-25}{2,-25}", "IsNeutralCulture", System.Convert.ToString(myCIintl.get_IsNeutralCulture()), System.Convert.ToString(myCItrad.get_IsNeutralCulture())); Console.WriteLine("{0,-33}{1,-25}{2,-25}", "IsReadOnly", System.Convert.ToString(myCIintl.get_IsReadOnly()), System.Convert.ToString(myCItrad.get_IsReadOnly())); Console.WriteLine("{0,-33}{1,-25}{2,-25}", "LCID", System.Convert.ToString(myCIintl.get_LCID()), System.Convert.ToString(myCItrad.get_LCID())); Console.WriteLine("{0,-33}{1,-25}{2,-25}", "Name", myCIintl.get_Name(), myCItrad.get_Name()); Console.WriteLine("{0,-33}{1,-25}{2,-25}", "NativeName", myCIintl.get_NativeName(), myCItrad.get_NativeName()); Console.WriteLine("{0,-33}{1,-25}{2,-25}", "Parent", myCIintl.get_Parent(), myCItrad.get_Parent()); Console.WriteLine("{0,-33}{1,-25}{2,-25}", "TextInfo", myCIintl.get_TextInfo(), myCItrad.get_TextInfo()); Console.WriteLine("{0,-33}{1,-25}{2,-25}", "ThreeLetterISOLanguageName", myCIintl.get_ThreeLetterISOLanguageName(), myCItrad.get_ThreeLetterISOLanguageName()); Console.WriteLine("{0,-33}{1,-25}{2,-25}", "ThreeLetterWindowsLanguageName", myCIintl.get_ThreeLetterWindowsLanguageName(), myCItrad.get_ThreeLetterWindowsLanguageName()); Console.WriteLine("{0,-33}{1,-25}{2,-25}", "TwoLetterISOLanguageName", myCIintl.get_TwoLetterISOLanguageName(), myCItrad.get_TwoLetterISOLanguageName()); Console.WriteLine(); // Compare two strings using myCIintl. Console.WriteLine("Comparing \"llegar\" and \"lugar\""); Console.WriteLine(" With myCIintl.CompareInfo.Compare: {0}", System.Convert.ToString ( myCIintl.get_CompareInfo().Compare( "llegar", "lugar"))); Console.WriteLine(" With myCItrad.CompareInfo.Compare: {0}", System.Convert.ToString ( myCItrad.get_CompareInfo().Compare( "llegar", "lugar"))); } //main } //SamplesCultureInfo /* This code produces the following output. PROPERTY INTERNATIONAL TRADITIONAL CompareInfo CompareInfo - 3082 CompareInfo - 1034 DisplayName Spanish (Spain) Spanish (Spain) EnglishName Spanish (Spain) Spanish (Spain) IsNeutralCulture False False IsReadOnly False False LCID 3082 1034 Name es-ES es-ES NativeName espaol (Espaa) espaol (Espaa) Parent es es TextInfo TextInfo - 3082 TextInfo - 1034 ThreeLetterISOLanguageName spa spa ThreeLetterWindowsLanguageName ESN ESN TwoLetterISOLanguageName es es Comparing "llegar" and "lugar" With myCIintl.CompareInfo.Compare: -1 With myCItrad.CompareInfo.Compare: 1 */
下列程式碼範例會判斷每個使用中文之特定文化特性的父文化特性。
using System; using System.Globalization; public class SamplesCultureInfo { public static void Main() { // Prints the header. Console.WriteLine( "SPECIFIC CULTURE PARENT CULTURE" ); // Determines the specific cultures that use the Chinese language, and displays the parent culture. foreach ( CultureInfo ci in CultureInfo.GetCultures( CultureTypes.SpecificCultures ) ) { if ( ci.TwoLetterISOLanguageName == "zh" ) { Console.Write( "0x{0} {1} {2,-37}", ci.LCID.ToString("X4"), ci.Name, ci.EnglishName ); Console.WriteLine( "0x{0} {1} {2}", ci.Parent.LCID.ToString("X4"), ci.Parent.Name, ci.Parent.EnglishName ); } } } } /* This code produces the following output. SPECIFIC CULTURE PARENT CULTURE 0x0404 zh-TW Chinese (Taiwan) 0x7C04 zh-CHT Chinese (Traditional) 0x0804 zh-CN Chinese (People's Republic of China) 0x0004 zh-CHS Chinese (Simplified) 0x0C04 zh-HK Chinese (Hong Kong S.A.R.) 0x7C04 zh-CHT Chinese (Traditional) 0x1004 zh-SG Chinese (Singapore) 0x0004 zh-CHS Chinese (Simplified) 0x1404 zh-MO Chinese (Macau S.A.R.) 0x7C04 zh-CHT Chinese (Traditional) */
import System.* ; import System.Globalization.* ; public class SamplesCultureInfo { public static void main(String[] args) { // Prints the header. Console.WriteLine("SPECIFIC CULTURE " + " PARENT CULTURE"); // Determines the specific cultures that use the Chinese language, // and displays the parent culture. for(int iCtr=0; iCtr < (CultureInfo.GetCultures(CultureTypes.SpecificCultures). length); iCtr++) { CultureInfo ci = CultureInfo.GetCultures(CultureTypes.SpecificCultures)[iCtr]; if (ci.get_TwoLetterISOLanguageName().equalsIgnoreCase("zh")) { Console.Write("0x{0} {1} {2,-37}", ((System.Int32 ) ci.get_LCID()).ToString("X4") , ci.get_Name(), ci.get_EnglishName()); Console.WriteLine("0x{0} {1} {2}", ((System.Int32 )ci.get_Parent().get_LCID()).ToString("X4"), ci.get_Parent().get_Name(), ci.get_Parent().get_EnglishName()); } } } //main } //SamplesCultureInfo /* This code produces the following output. SPECIFIC CULTURE PARENT CULTURE 0x0404 zh-TW Chinese (Taiwan) 0x7C04 zh-CHT Chinese (Traditional) 0x0804 zh-CN Chinese (People's Republic of China) 0x0004 zh-CHS Chinese (Simplified) 0x0C04 zh-HK Chinese (Hong Kong S.A.R.) 0x7C04 zh-CHT Chinese (Traditional) 0x1004 zh-SG Chinese (Singapore) 0x0004 zh-CHS Chinese (Simplified) 0x1404 zh-MO Chinese (Macau S.A.R.) 0x0004 zh-CHS Chinese (Simplified) */
转载于:https://www.cnblogs.com/lsfv/archive/2012/07/24/2606514.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150984.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...