public final class Locale extends Object implements Serializable, Cloneable
Locales represent a specific country and culture. Classes which can be passed a Locale object tailor their information for a given locale. For instance, currency number formatting is handled differently for the USA and France.
Locales are made up of a language code, a country code, and an optional set of variant strings. Language codes are represented by ISO 639:1988 w/ additions from ISO 639/RA Newsletter No. 1/1989 and a decision of the Advisory Committee of ISO/TC39 on August 8, 1997.
Country codes are represented by ISO 3166. Variant strings are vendor and browser specific. Standard variant strings include "POSIX" for POSIX, "WIN" for MS-Windows, and "MAC" for Macintosh. When there is more than one variant string, they must be separated by an underscore (U+005F).
The default locale is determined by the values of the system properties user.language, user.region, and user.variant, defaulting to "en". Note that the locale does NOT contain the conversion and formatting capabilities (for that, use ResourceBundle and java.text). Rather, it is an immutable tag object for identifying a given locale, which is referenced by these other classes when they must make locale-dependent decisions.
ResourceBundle
,
Format
,
NumberFormat
,
Collator
,
Serialized FormModifier and Type | Field and Description |
---|---|
static Locale |
CANADA
Locale which represents the English speaking portion of Canada.
|
static Locale |
CANADA_FRENCH
Locale which represents the French speaking portion of Canada.
|
static Locale |
CHINA
Locale which represents China.
|
static Locale |
CHINESE
Locale which represents the Chinese language.
|
static Locale |
ENGLISH
Locale which represents the English language.
|
static Locale |
FRANCE
Locale which represents France.
|
static Locale |
FRENCH
Locale which represents the French language.
|
static Locale |
GERMAN
Locale which represents the German language.
|
static Locale |
GERMANY
Locale which represents Germany.
|
static Locale |
ITALIAN
Locale which represents the Italian language.
|
static Locale |
ITALY
Locale which represents Italy.
|
static Locale |
JAPAN
Locale which represents Japan.
|
static Locale |
JAPANESE
Locale which represents the Japanese language.
|
static Locale |
KOREA
Locale which represents Korea.
|
static Locale |
KOREAN
Locale which represents the Korean language.
|
static Locale |
PRC
Locale which represents the People's Republic of China.
|
static Locale |
SIMPLIFIED_CHINESE
Locale which represents the Chinese language as used in China.
|
static Locale |
TAIWAN
Locale which represents Taiwan.
|
static Locale |
TRADITIONAL_CHINESE
Locale which represents the Chinese language as used in Taiwan.
|
static Locale |
UK
Locale which represents the United Kingdom.
|
static Locale |
US
Locale which represents the United States.
|
Constructor and Description |
---|
Locale(String language)
Creates a new locale for a language.
|
Locale(String language,
String country)
Creates a new locale for the given language and country.
|
Locale(String language,
String country,
String variant)
Creates a new locale for the given language and country.
|
Modifier and Type | Method and Description |
---|---|
Object |
clone()
Does the same as
Object.clone() but does not throw
a CloneNotSupportedException . |
boolean |
equals(Object obj)
Compares two locales.
|
static Locale[] |
getAvailableLocales()
Returns the list of available locales.
|
String |
getCountry()
Returns the country code of this locale.
|
static Locale |
getDefault()
Returns the default Locale.
|
String |
getDisplayCountry()
Returns the country name of this locale localized to the
default locale.
|
String |
getDisplayCountry(Locale locale)
Gets the country name suitable for display to the user, formatted
for a specified locale.
|
String |
getDisplayLanguage()
Gets the country name suitable for display to the user, formatted
for the default locale.
|
String |
getDisplayLanguage(Locale locale)
Gets the language name suitable for display to the user, formatted
for a specified locale.
|
String |
getDisplayName()
Gets all local components suitable for display to the user, formatted
for the default locale.
|
String |
getDisplayName(Locale locale)
Gets all local components suitable for display to the user, formatted
for a specified locale.
|
String |
getDisplayVariant()
Returns the variant name of this locale localized to the
default locale.
|
String |
getDisplayVariant(Locale locale)
Returns the variant name of this locale localized to the
given locale.
|
String |
getISO3Country()
Returns the three-letter ISO country abbrevation of the locale.
|
String |
getISO3Language()
Returns the three-letter ISO language abbrevation of this locale.
|
static String[] |
getISOCountries()
Returns a list of all 2-letter uppercase country codes as defined
in ISO 3166.
|
static String[] |
getISOLanguages()
Returns a list of all 2-letter lowercase language codes as defined
in ISO 639 (both old and new variant).
|
String |
getLanguage()
Returns the language code of this locale.
|
String |
getVariant()
Returns the variant code of this locale.
|
int |
hashCode()
Return the hash code for this locale.
|
static void |
setDefault(Locale newLocale)
Changes the default locale.
|
String |
toString()
Gets the string representation of the current locale.
|
public static final Locale ENGLISH
public static final Locale FRENCH
public static final Locale GERMAN
public static final Locale ITALIAN
public static final Locale JAPANESE
public static final Locale KOREAN
public static final Locale CHINESE
public static final Locale SIMPLIFIED_CHINESE
public static final Locale TRADITIONAL_CHINESE
public static final Locale FRANCE
public static final Locale GERMANY
public static final Locale ITALY
public static final Locale JAPAN
public static final Locale KOREA
public static final Locale CHINA
public static final Locale PRC
public static final Locale TAIWAN
public static final Locale UK
public static final Locale US
public static final Locale CANADA
public static final Locale CANADA_FRENCH
public Locale(String language, String country, String variant)
language
- lowercase two-letter ISO-639 A2 language codecountry
- uppercase two-letter ISO-3166 A2 contry codevariant
- vendor and browser specificNullPointerException
- if any argument is nullpublic Locale(String language, String country)
language
- lowercase two-letter ISO-639 A2 language codecountry
- uppercase two-letter ISO-3166 A2 country codeNullPointerException
- if either argument is nullpublic Locale(String language)
language
- lowercase two-letter ISO-639 A2 language codeNullPointerException
- if either argument is nullpublic static Locale getDefault()
public static void setDefault(Locale newLocale)
PropertyPermission("user.language", "write")
, because of
its potential impact to running code.newLocale
- the new default localeNullPointerException
- if newLocale is nullSecurityException
- if permission is deniedpublic static Locale[] getAvailableLocales()
public static String[] getISOCountries()
public static String[] getISOLanguages()
public String getLanguage()
public String getCountry()
public String getVariant()
public final String toString()
toString
in class Object
getDisplayName()
public String getISO3Language()
MissingResourceException
- if the three-letter code is not knownpublic String getISO3Country()
MissingResourceException
- if the three-letter code is not knownpublic final String getDisplayLanguage()
getDisplayLanguage(Locale.getDefault());
public String getDisplayLanguage(Locale locale)
locale
- locale to use for formattingpublic final String getDisplayCountry()
getDisplayCountry(Locale.getDefault());
public String getDisplayCountry(Locale locale)
locale
- locale to use for formattingpublic final String getDisplayVariant()
getDisplayVariant(Locale.getDefault());
public String getDisplayVariant(Locale locale)
locale
- locale to use for formattingpublic final String getDisplayName()
The returned String will be one of the following forms:
language (country, variant) language (country) language (variant) country (variant) language country variant
public String getDisplayName(Locale locale)
The returned String will be one of the following forms:
language (country, variant) language (country) language (variant) country (variant) language country variant
locale
- locale to use for formattingpublic Object clone()
Object.clone()
but does not throw
a CloneNotSupportedException
. Why anyone would
use this method is a secret to me, since this class is immutable.public int hashCode()
Locale
s are often
used in hash tables.