JavaTM 2 Platform
Standard Ed. 6

java.util
類別 Locale

java.lang.Object
  繼承者 java.util.Locale
所有已實作的介面:
Serializable, Cloneable

public final class Locale
extends Object
implements Cloneable, Serializable

Locale 物件表示了特定的地理、政治和文化地區。需要 Locale 來執行其任務的操作稱為語言環境敏感的 操作,它使用 Locale 為使用者量身定制資訊。例如,顯示一個數值就是語言環境敏感的操作,應該根據使用者的國家、地區或文化的風俗/傳統來格式化該數值。

使用此類別中的建構子來創建 Locale

 Locale(String language)
 Locale(String language, String country)
 Locale(String language, String country, String variant)
 
語言參數是一個有效的 ISO 語言程式碼。這些程式碼是由 ISO-639 定義的小寫兩字母程式碼。在許多網站上都可以找到這些程式碼的完整列表,如:
http://www.loc.gov/standards/iso639-2/englangn.html。

國家/地區參數是一個有效的 ISO 國家/地區程式碼。這些程式碼是由 ISO-3166 定義的大寫兩字母程式碼。在許多網站上都可以找到這些程式碼的完整列表,如:
http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html。

變數參數是特定於供應商或瀏覽器的程式碼。例如,用 WIN 代表 Windows、MAC 代表 Macintosh 和 POSIX 代表 POSIX。有兩個變數時,把它們用下劃線區分開來,把最重要的放在前面。例如,一個傳統的西班牙排序規則可能用下列語言、國家/地區和變數參數來建構一個語言環境:"es"、"ES"、"Traditional_WIN"。

因為一個 Locale 物件就是一個地區的標識符,所以建構一個 Locale 時不執行有效性檢查。如果想瞭解特定的資源在您建構的 Locale 中是否可用,則必須查詢那些資源。例如,使用 getAvailableLocales 方法詢問 NumberFormat 所支持的語言環境。
註:查詢一個特定語言環境的資源時,得到的是最佳的可用比對,沒必要精確地按要求提供資源。有關更多資訊,請參見 ResourceBundle

Locale 類別提供了一些方便的常數,可用這些常數為常用的語言環境創建 Locale 物件。例如,下面的內容為美國創建了一個 Locale 物件:

 Locale.US
 

創建完 Locale 後,就可以查詢有關其自身的資訊。使用 getCountry 可獲取 ISO 國家/地區程式碼,使用 getLanguage 則獲取 ISO 語言程式碼。可用使用 getDisplayCountry 來獲取適合向使用者顯示的國家/地區名。同樣,可用使用 getDisplayLanguage 來獲取適合向使用者顯示的語言名。有趣的是,getDisplayXXX 方法本身是語言環境敏感的,它有兩個版本:一個使用預設的語言環境作為參數,另一個則使用指定的語言環境作為參數。

Java 平臺提供了多個可執行語言環境敏感操作的類別:例如,NumberFormat 類別以語言環境敏感的方式格式化數值、貨幣或百分比。像 NumberFormat 這樣的類別則有多種創建該型別預設物件的便捷方法。例如,NumberFormat 類別提供了三個便捷的方法,用於創建預設的 NumberFormat 物件:

 NumberFormat.getInstance()
 NumberFormat.getCurrencyInstance()
 NumberFormat.getPercentInstance()
 
這些方法有兩個變數;一個有明確的語言環境而另一個則沒有;後者使用預設語言環境。
 NumberFormat.getInstance(myLocale)
 NumberFormat.getCurrencyInstance(myLocale)
 NumberFormat.getPercentInstance(myLocale)
 
Locale 是一種標識所要獲取的物件種類別 (NumberFormat) 的機制。但 locale 是一種標識物件的機制,是物件本身的容器。

從以下版本開始:
1.1
另請參見:
ResourceBundle, Format, NumberFormat, Collator, 序列化表格

欄位摘要
static Locale CANADA
          用於表示國家/地區的有用常數。
static Locale CANADA_FRENCH
          用於表示國家/地區的有用常數。
static Locale CHINA
          用於表示國家/地區的有用常數。
static Locale CHINESE
          用於表示語言的有用常數。
static Locale ENGLISH
          用於表示語言的有用常數。
static Locale FRANCE
          用於表示國家/地區的有用常數。
static Locale FRENCH
          用於表示語言的有用常數。
static Locale GERMAN
          用於表示語言的有用常數。
static Locale GERMANY
          用於表示國家/地區的有用常數。
static Locale ITALIAN
          用於表示語言的有用常數。
static Locale ITALY
          用於表示國家/地區的有用常數。
static Locale JAPAN
          用於表示國家/地區的有用常數。
static Locale JAPANESE
          用於表示語言的有用常數。
static Locale KOREA
          用於表示國家/地區的有用常數。
static Locale KOREAN
          用於表示語言的有用常數。
static Locale PRC
          用於表示國家/地區的有用常數。
static Locale ROOT
          用於表示根語言環境的有用常數。
static Locale SIMPLIFIED_CHINESE
          用於表示語言的有用常數。
static Locale TAIWAN
          用於表示國家/地區的有用常數。
static Locale TRADITIONAL_CHINESE
          用於表示語言的有用常數。
static Locale UK
          用於表示國家/地區的有用常數。
static Locale US
          用於表示國家/地區的有用常數。
 
建構子摘要
Locale(String language)
          根據語言程式碼建構一個語言環境。
Locale(String language, String country)
          根據語言和國家/地區建構一個語言環境。
Locale(String language, String country, String variant)
          根據語言、國家/地區和變數建構一個語言環境。
 
方法摘要
 Object clone()
          覆寫 Cloneable。
 boolean equals(Object obj)
          如果該 Locale 等於另一個物件,則返回 true。
static Locale[] getAvailableLocales()
          返回所有已安裝語言環境的陣列。
 String getCountry()
          返回此語言環境的國家/地區程式碼,將為空字元串或大寫的 ISO 3166 兩字母程式碼。
static Locale getDefault()
          獲得此 Java 虛擬機器實例的當前預設語言環境值。
 String getDisplayCountry()
          返回適合向使用者顯示的語言環境國家/地區名。
 String getDisplayCountry(Locale inLocale)
          返回適合向使用者顯示的語言環境國家/地區名。
 String getDisplayLanguage()
          返回適合向使用者顯示的語言環境語言名。
 String getDisplayLanguage(Locale inLocale)
          返回適合向使用者顯示的語言環境語言名。
 String getDisplayName()
          返回適合向使用者顯示的語言環境名。
 String getDisplayName(Locale inLocale)
          返回適合向使用者顯示的語言環境名。
 String getDisplayVariant()
          返回適合向使用者顯示的語言環境變數程式碼名。
 String getDisplayVariant(Locale inLocale)
          返回適合向使用者顯示的語言環境變數程式碼名。
 String getISO3Country()
          返回此語言環境國家/地區的三字母縮寫。
 String getISO3Language()
          返回此語言環境語言的三字母縮寫。
static String[] getISOCountries()
          返回 ISO 3166 中所定義的所有兩字母國家/地區程式碼。
static String[] getISOLanguages()
          返回 ISO 639 中所定義的所有兩字母語言程式碼。
 String getLanguage()
          返回此語言環境的語言程式碼,可以是空字元串或小寫的 ISO 639 程式碼。
 String getVariant()
          返回此語言環境的變數程式碼。
 int hashCode()
          覆寫 hashCode。
static void setDefault(Locale newLocale)
          為此 Java 虛擬機器實例設置預設語言環境。
 String toString()
          使用由下劃線分隔的語言、國家/地區和變數來獲取整個語言環境的程式名稱。
 
從類別 java.lang.Object 繼承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait
 

欄位詳細資訊

ENGLISH

public static final Locale ENGLISH
用於表示語言的有用常數。


FRENCH

public static final Locale FRENCH
用於表示語言的有用常數。


GERMAN

public static final Locale GERMAN
用於表示語言的有用常數。


ITALIAN

public static final Locale ITALIAN
用於表示語言的有用常數。


JAPANESE

public static final Locale JAPANESE
用於表示語言的有用常數。


KOREAN

public static final Locale KOREAN
用於表示語言的有用常數。


CHINESE

public static final Locale CHINESE
用於表示語言的有用常數。


SIMPLIFIED_CHINESE

public static final Locale SIMPLIFIED_CHINESE
用於表示語言的有用常數。


TRADITIONAL_CHINESE

public static final Locale TRADITIONAL_CHINESE
用於表示語言的有用常數。


FRANCE

public static final Locale FRANCE
用於表示國家/地區的有用常數。


GERMANY

public static final Locale GERMANY
用於表示國家/地區的有用常數。


ITALY

public static final Locale ITALY
用於表示國家/地區的有用常數。


JAPAN

public static final Locale JAPAN
用於表示國家/地區的有用常數。


KOREA

public static final Locale KOREA
用於表示國家/地區的有用常數。


CHINA

public static final Locale CHINA
用於表示國家/地區的有用常數。


PRC

public static final Locale PRC
用於表示國家/地區的有用常數。


TAIWAN

public static final Locale TAIWAN
用於表示國家/地區的有用常數。


UK

public static final Locale UK
用於表示國家/地區的有用常數。


US

public static final Locale US
用於表示國家/地區的有用常數。


CANADA

public static final Locale CANADA
用於表示國家/地區的有用常數。


CANADA_FRENCH

public static final Locale CANADA_FRENCH
用於表示國家/地區的有用常數。


ROOT

public static final Locale ROOT
用於表示根語言環境的有用常數。根語言環境是指其語言、國家、變數是空("")字元串的語言環境。它被視為所有語言環境的基礎語言環境,並且用作語言環境敏感操作的語言/國家的非特定語言環境。

從以下版本開始:
1.6
建構子詳細資訊

Locale

public Locale(String language,
              String country,
              String variant)
根據語言、國家/地區和變數建構一個語言環境。註:ISO 639 並非是一個不變的標準;它所定義的某些語言程式碼(特別是 iw、ji 和 in)已經發生了變化。此建構子接受舊程式碼(iw、ji 和 in)和新程式碼(he、yi 和 id),但是 Locale 中的所有其他 API 將只返回舊程式碼。

參數:
language - 小寫的兩字母 ISO-639 程式碼。
country - 大寫的兩字母 ISO-3166 程式碼。
variant - 特定於供應商和瀏覽器的程式碼。參見類別描述。
拋出:
NullPointerException - 如果任意參數為 null。

Locale

public Locale(String language,
              String country)
根據語言和國家/地區建構一個語言環境。註:ISO 639 並非是一個不變的標準;它所定義的某些語言程式碼(特別是 iw、ji 和 in)已經發生了變化。此建構子接受舊程式碼(iw、ji 和 in)和新程式碼(he、yi 和 id),但是 Locale 中的所有其他 API 將只返回舊程式碼。

參數:
language - 小寫的兩字母 ISO-639 程式碼。
country - 大寫的兩字母 ISO-3166 程式碼。
拋出:
NullPointerException - 如果任意參數為 null。

Locale

public Locale(String language)
根據語言程式碼建構一個語言環境。註:ISO 639 並非是一個不變的標準;它所定義的某些語言程式碼(特別是 iw、ji 和 in)已經發生了變化。此建構子接受舊程式碼(iw、ji 和 in)和新程式碼(he、yi 和 id),但是 Locale 中的所有其他 API 將只返回舊程式碼。

參數:
language - 小寫的兩字母 ISO-639 程式碼。
拋出:
NullPointerException - 如果參數為 null。
從以下版本開始:
1.4
方法詳細資訊

getDefault

public static Locale getDefault()
獲得此 Java 虛擬機器實例的當前預設語言環境值。

Java 虛擬機器根據主機的環境在啟動期間設置預設語言環境。如果沒有明確地指定語言環境,則很多語言環境敏感的方法都使用該方法。可使用 setDefault 方法更改該值。

返回:
此 Java 虛擬機器實例的預設語言環境。

setDefault

public static void setDefault(Locale newLocale)
為此 Java 虛擬機器實例設置預設語言環境。這不會影響主機的語言環境。

如果有安全管理器,則在更改預設語言環境前使用 PropertyPermission("user.language", "write") 權限調用其 checkPermission 方法。

Java 虛擬機器根據主機的環境在啟動期間設置預設語言環境。如果沒有明確地指定語言環境,則很多語言環境敏感的方法都使用該方法。

由於更改預設的語言環境可能影響功能的很多方面,所以應該僅在調用者準備重新初始化在同一 Java 虛擬機器內所運行的語言環境敏感程式碼時才使用此方法。

參數:
newLocale - 新的預設語言環境。
拋出:
SecurityException - 如果安全管理器存在並且其 checkPermission 方法不允許該操作。
NullPointerException - 如果 newLocale 為 null。
另請參見:
SecurityManager.checkPermission(java.security.Permission), PropertyPermission

getAvailableLocales

public static Locale[] getAvailableLocales()
返回所有已安裝語言環境的陣列。 返回的陣列表示由 Java 運行時環境和已安裝的 LocaleServiceProvider 所支持的語言環境的聯合。它必須至少包含一個等於 Locale.USLocale 實例。

返回:
已安裝語言環境的陣列。

getISOCountries

public static String[] getISOCountries()
返回 ISO 3166 中所定義的所有兩字母國家/地區程式碼。可用於創建 Locale。


getISOLanguages

public static String[] getISOLanguages()
返回 ISO 639 中所定義的所有兩字母語言程式碼。可用於創建 Locale。[註:ISO 639 並非是一個不變的標準,某些語言程式碼已經改變。此功能所返回的列表包括了程式碼已改變的語言的新程式碼和舊程式碼。]


getLanguage

public String getLanguage()
返回此語言環境的語言程式碼,可以是空字元串或小寫的 ISO 639 程式碼。

註:ISO 639 並非是一個不變的標準,某些語言程式碼已經改變。Locale 的建構子可識別程式碼已改變的語言的新程式碼和舊程式碼,但是此功能總是返回舊程式碼。如果想檢查程式碼已改變的特定語言,不要執行

 if (locale.getLanguage().equals("he"))
    ...
 
Instead, do
 if (locale.getLanguage().equals(new Locale("he", "", "").getLanguage()))
    ...

另請參見:
getDisplayLanguage()

getCountry

public String getCountry()
返回此語言環境的國家/地區程式碼,將為空字元串或大寫的 ISO 3166 兩字母程式碼。

另請參見:
getDisplayCountry()

getVariant

public String getVariant()
返回此語言環境的變數程式碼。

另請參見:
getDisplayVariant()

toString

public final String toString()
使用由下劃線分隔的語言、國家/地區和變數來獲取整個語言環境的程式名稱。語言總是小寫,國家/地區總是大寫。如果沒有語言,則字元串用一個下劃線開頭。如果語言和國家/地區欄位都丟失了,則此功能將返回空字元串,即使變數欄位中填有內容也如此(不能只用變數來創建一個語言環境,變數必須隨附在有效的語言或國家/地區程式碼上)。範例:"en"、"de_DE"、"_GB"、"en_US_WIN"、"de__POSIX"、"fr__MAC"。

覆寫:
類別 Object 中的 toString
返回:
該物件的字元串表示形式。
另請參見:
getDisplayName()

getISO3Language

public String getISO3Language()
                       throws MissingResourceException
返回此語言環境語言的三字母縮寫。如果此語言環境未指定語言,那麼這將是一個空字元串。否則,將返回小寫的 ISO 639-2/T 語言程式碼。可在 http://www.loc.gov/standards/iso639-2/englangn.html. 找到 ISO 639-2 語言程式碼。

拋出:
MissingResourceException - 如果三字母語言縮寫不可用於此語言環境,則拋出 MissingResourceException。

getISO3Country

public String getISO3Country()
                      throws MissingResourceException
返回此語言環境國家/地區的三字母縮寫。如果此語言環境未指定國家/地區,那麼這將是一個空字元串。否則將返回大寫的 ISO 3166 三字母國家/地區程式碼。可在 http://www.davros.org/misc/iso3166.txt. 找到 ISO 3166-2 國家/地區程式碼。

拋出:
MissingResourceException - 如果三字母國家/地區縮寫不可用於此語言環境,則拋出 MissingResourceException。

getDisplayLanguage

public final String getDisplayLanguage()
返回適合向使用者顯示的語言環境語言名。如有可能,將為預設的語言環境對返回的名稱進行本地化。例如,如果語言環境是 fr_FR 並且預設的語言環境是 en_US,則 getDisplayLanguage() 將返回 "French";如果語言環境是 en_US 並且預設的語言環境是 fr_FR,則 getDisplayLanguage() 將返回 "anglais"。如果無法為預設的語言環境本地化返回的名稱(比方說沒有 Croatian 的日本名稱),則該功能將依賴英文名,並使用 ISO 程式碼作為最終的值。如果該語言環境未指定語言,則此功能返回空字元串。


getDisplayLanguage

public String getDisplayLanguage(Locale inLocale)
返回適合向使用者顯示的語言環境語言名。如有可能,將根據 inLocale 對返回的名稱進行本地化。例如,如果語言環境是 fr_FR 並且 inLocale 是 en_US,則 getDisplayLanguage() 將返回 "French";如果語言環境是 en_US 並且 inLocale 是 fr_FR,則 getDisplayLanguage() 將返回 "anglais"。如果無法根據 inLocale 對返回的名稱進行本地化(比方說沒有 Croatian 的日本名稱),則該功能將依賴英文名,並使用 ISO 程式碼作為最終的值。如果該語言環境未指定語言,則此功能返回空字元串。

拋出:
NullPointerException - 如果 inLocalenull

getDisplayCountry

public final String getDisplayCountry()
返回適合向使用者顯示的語言環境國家/地區名。如有可能,將為預設的語言環境對返回的名稱進行本地化。例如,如果語言環境是 fr_FR 並且預設的語言環境是 en_US,則 getDisplayCountry() 將返回 "France";如果語言環境是 en_US 並且預設的語言環境是 fr_FR,則 getDisplayCountry() 將返回 "Etats-Unis"。如果無法為預設的語言環境本地化返回的名稱(比方說沒有 Croatia 的日本名稱),則該功能將依賴英文名,並使用 ISO 程式碼作為最終的值。如果該語言環境未指定國家/地區,則此功能返回空字元串。


getDisplayCountry

public String getDisplayCountry(Locale inLocale)
返回適合向使用者顯示的語言環境國家/地區名。 如有可能,將根據 inLocale 對返回的名稱進行本地化。例如,如果語言環境是 fr_FR 並且 inLocale 是 en_US,則 getDisplayCountry() 將返回 "France";如果語言環境是 en_US 並且 inLocale 是 fr_FR,則 getDisplayCountry() 將返回 "Etats-Unis"。如果無法根據 inLocale 對返回的名稱進行本地化(比方說沒有 Croatia 的日本名稱),則該功能將依賴英文名,並使用 ISO 程式碼作為最終的值。如果該語言環境未指定國家/地區,則此功能返回空字元串。

拋出:
NullPointerException - 如果 inLocalenull

getDisplayVariant

public final String getDisplayVariant()
返回適合向使用者顯示的語言環境變數程式碼名。如有可能,將為預設的語言環境對返回的名稱進行本地化。如果該語言環境未指定變數程式碼,則此功能返回空字元串。


getDisplayVariant

public String getDisplayVariant(Locale inLocale)
返回適合向使用者顯示的語言環境變數程式碼名。如有可能,將根據 inLocale 對名稱進行本地化。如果該語言環境未指定變數程式碼,則此功能返回空字元串。

拋出:
NullPointerException - 如果 inLocalenull

getDisplayName

public final String getDisplayName()
返回適合向使用者顯示的語言環境名。這將把 getDisplayLanguage()、getDisplayCountry() 和 getDisplayVariant() 返回的值組合到單個字元串中。顯示的名稱具有下列形式之一:

語言(國家/地區,變數)

語言(國家/地區)

語言(變數)

國家/地區(變數)

語言

國家/地區

變數

這取決於語言環境中指定了哪些欄位。如果語言、國家/地區和變數欄位都為空,則該功能將返回空字元串。


getDisplayName

public String getDisplayName(Locale inLocale)
返回適合向使用者顯示的語言環境名。這將把 getDisplayLanguage()、getDisplayCountry() 和 getDisplayVariant() 返回的值組合到單個字元串中。顯示的名稱具有下列形式之一:

語言(國家/地區,變數)

語言(國家/地區)

語言(變數)

國家/地區(變數)

語言

國家/地區

變數

這取決於語言環境中指定了哪些欄位。如果語言、國家/地區和變數欄位都為空,則該功能將返回空字元串。

拋出:
NullPointerException - 如果 inLocalenull

clone

public Object clone()
覆寫 Cloneable。

覆寫:
類別 Object 中的 clone
返回:
此實例的一個副本。
另請參見:
Cloneable

hashCode

public int hashCode()
覆寫 hashCode。由於 Locale 經常用於雜湊表中,所以快取記憶體該值可提高速度。

覆寫:
類別 Object 中的 hashCode
返回:
此物件的一個雜湊碼值。
另請參見:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object obj)
如果該 Locale 等於另一個物件,則返回 true。一個 Locale 與另一個 Locale 具有相同的語言、國家/地區和變數時,則認為它們相等;並與所有其他對象都不相等。

覆寫:
類別 Object 中的 equals
參數:
obj - 要與之比較的參考物件。
返回:
如果此 Locale 等於指定的物件,則返回 true。
另請參見:
Object.hashCode(), Hashtable

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only