DthingApi
Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
java.util.Locale Class Reference
Inheritance diagram for java.util.Locale:
java.io.Serializable

Public Member Functions

 Locale (String language)
 
 Locale (String language, String country)
 
 Locale (String language, String country, String variant)
 
Object clone ()
 
boolean equals (Object object)
 
String getCountry ()
 
final String getDisplayCountry ()
 
String getDisplayCountry (Locale locale)
 
final String getDisplayLanguage ()
 
String getDisplayLanguage (Locale locale)
 
final String getDisplayName ()
 
String getDisplayName (Locale locale)
 
final String getDisplayVariant ()
 
String getDisplayVariant (Locale locale)
 
String getISO3Country ()
 
String getISO3Language ()
 
String getLanguage ()
 
String getVariant ()
 
synchronized int hashCode ()
 
final String toString ()
 

Static Public Member Functions

static Locale [] getAvailableLocales ()
 
static Locale getDefault ()
 
static String [] getISOCountries ()
 
static String [] getISOLanguages ()
 
static synchronized void setDefault (Locale locale)
 

Static Public Attributes

static final Locale CANADA = new Locale(true, "en", "CA")
 
static final Locale CANADA_FRENCH = new Locale(true, "fr", "CA")
 
static final Locale CHINA = new Locale(true, "zh", "CN")
 
static final Locale CHINESE = new Locale(true, "zh", "")
 
static final Locale ENGLISH = new Locale(true, "en", "")
 
static final Locale FRANCE = new Locale(true, "fr", "FR")
 
static final Locale FRENCH = new Locale(true, "fr", "")
 
static final Locale GERMAN = new Locale(true, "de", "")
 
static final Locale GERMANY = new Locale(true, "de", "DE")
 
static final Locale ITALIAN = new Locale(true, "it", "")
 
static final Locale ITALY = new Locale(true, "it", "IT")
 
static final Locale JAPAN = new Locale(true, "ja", "JP")
 
static final Locale JAPANESE = new Locale(true, "ja", "")
 
static final Locale KOREA = new Locale(true, "ko", "KR")
 
static final Locale KOREAN = new Locale(true, "ko", "")
 
static final Locale PRC = new Locale(true, "zh", "CN")
 
static final Locale ROOT = new Locale(true, "", "")
 
static final Locale SIMPLIFIED_CHINESE = new Locale(true, "zh", "CN")
 
static final Locale TAIWAN = new Locale(true, "zh", "TW")
 
static final Locale TRADITIONAL_CHINESE = new Locale(true, "zh", "TW")
 
static final Locale UK = new Locale(true, "en", "GB")
 
static final Locale US = new Locale(true, "en", "US")
 

Detailed Description

Locale

represents a language/country/variant combination. Locales are used to alter the presentation of information such as numbers or dates to suit the conventions in the region they describe.

The language codes are two-letter lowercase ISO language codes (such as "en") as defined by ISO 639-1. The country codes are two-letter uppercase ISO country codes (such as "US") as defined by ISO 3166-1. The variant codes are unspecified.

Note that Java uses several deprecated two-letter codes. The Hebrew ("he") language code is rewritten as "iw", Indonesian ("id") as "in", and Yiddish ("yi") as "ji". This rewriting happens even if you construct your own

Locale

object, not just for instances returned by the various lookup methods.

Available locales

This class' constructors do no error checking. You can create a

Locale

for languages and countries that don't exist, and you can create instances for combinations that don't exist (such as "de_US" for "German as spoken in the US").

Note that locale data is not necessarily available for any of the locales pre-defined as constants in this class except for en_US, which is the only locale Java guarantees is always available.

It is also a mistake to assume that all devices have the same locales available. A device sold in the US will almost certainly support en_US and es_US, but not necessarily any locales with the same language but different countries (such as en_GB or es_ES), nor any locales for other languages (such as de_DE). The opposite may well be true for a device sold in Europe.

You can use Locale#getDefault to get an appropriate locale for the user of the device you're running on, or Locale#getAvailableLocales to get a list of all the locales available on the device you're running on.

Locale data

Note that locale data comes solely from ICU. User-supplied locale service providers (using the

java.text.spi

or

java.util.spi

mechanisms) are not supported.

Here are the versions of ICU (and the corresponding CLDR and Unicode versions) used in various Android releases:

cupcake/donut/eclair ICU 3.8 CLDR 1.5 Unicode 5.0
froyo ICU 4.2 CLDR 1.7 Unicode 5.1
gingerbread/honeycombICU 4.4 CLDR 1.8 Unicode 5.2
ice cream sandwichICU 4.6 CLDR 1.9 Unicode 6.0

Be wary of the default locale

Note that there are many convenience methods that automatically use the default locale, but using them may lead to subtle bugs.

The default locale is appropriate for tasks that involve presenting data to the user. In this case, you want to use the user's date/time formats, number formats, rules for conversion to lowercase, and so on. In this case, it's safe to use the convenience methods.

The default locale is not appropriate for machine-readable output. The best choice there is usually

Locale.US

 – this locale is guaranteed to be available on all devices, and the fact that it has no surprising special cases and is frequently used (especially for computer-computer communication) means that it tends to be the most efficient choice too.

A common mistake is to implicitly use the default locale when producing output meant to be machine-readable. This tends to work on the developer's test devices (especially because so many developers use en_US), but fails when run on a device whose user is in a more complex locale.

For example, if you're formatting integers some locales will use non-ASCII decimal digits. As another example, if you're formatting floating-point numbers some locales will use

','

as the decimal point and

'.'

for digit grouping. That's correct for human-readable output, but likely to cause problems if presented to another computer (Double#parseDouble can't parse such a number, for example). You should also be wary of the String#toLowerCase and String#toUpperCase overloads that don't take a

Locale

: in Turkey, for example, the characters

'i'

and

'I'

won't be converted to

'I'

and

'i'

. This is the correct behavior for Turkish text (such as user input), but inappropriate for, say, HTTP headers.

Constructor & Destructor Documentation

◆ Locale() [1/3]

java.util.Locale.Locale ( String  language)
inline

Constructs a new

Locale

using the specified language.

◆ Locale() [2/3]

java.util.Locale.Locale ( String  language,
String  country 
)
inline

Constructs a new

Locale

using the specified language and country codes.

◆ Locale() [3/3]

java.util.Locale.Locale ( String  language,
String  country,
String  variant 
)
inline

Constructs a new

Locale

using the specified language, country, and variant codes.

Member Function Documentation

◆ equals()

boolean java.util.Locale.equals ( Object  object)
inline

Returns true if

object

is a locale with the same language, country and variant.

◆ getAvailableLocales()

static Locale [] java.util.Locale.getAvailableLocales ( )
inlinestatic

Returns the system's installed locales. This array always includes

Locale.US

, and usually several others. Most locale-sensitive classes offer their own

method, which should be preferred over this general purpose method.

See also
java.text.BreakIterator::getAvailableLocales()
java.text.Collator::getAvailableLocales()
java.text.DateFormat::getAvailableLocales()
java.text.DateFormatSymbols::getAvailableLocales()
java.text.DecimalFormatSymbols::getAvailableLocales()
java.text.NumberFormat::getAvailableLocales()
java.util.Calendar::getAvailableLocales()

◆ getCountry()

String java.util.Locale.getCountry ( )
inline

Returns the country code for this locale, or

""

if this locale doesn't correspond to a specific country.

◆ getDefault()

static Locale java.util.Locale.getDefault ( )
inlinestatic

Returns the user's preferred locale. This may have been overridden for this process with setDefault.

Since the user's locale changes dynamically, avoid caching this value. Instead, use this method to look it up for each use.

◆ getDisplayCountry() [1/2]

final String java.util.Locale.getDisplayCountry ( )
inline

Equivalent to

getDisplayCountry(Locale.getDefault())

.

◆ getDisplayCountry() [2/2]

String java.util.Locale.getDisplayCountry ( Locale  locale)
inline

Returns the name of this locale's country, localized to

locale

. Returns the empty string if this locale does not correspond to a specific country.

◆ getDisplayLanguage() [1/2]

final String java.util.Locale.getDisplayLanguage ( )
inline

Equivalent to

getDisplayLanguage(Locale.getDefault())

.

◆ getDisplayLanguage() [2/2]

String java.util.Locale.getDisplayLanguage ( Locale  locale)
inline

Returns the name of this locale's language, localized to

locale

. If the language name is unknown, the language code is returned.

◆ getDisplayName() [1/2]

final String java.util.Locale.getDisplayName ( )
inline

Equivalent to

getDisplayName(Locale.getDefault())

.

◆ getDisplayName() [2/2]

String java.util.Locale.getDisplayName ( Locale  locale)
inline

Returns this locale's language name, country name, and variant, localized to

locale

. The exact output form depends on whether this locale corresponds to a specific language, country and variant.

For example:

  • new Locale("en").getDisplayName(Locale.US)
    ->
    English
  • new Locale("en", "US").getDisplayName(Locale.US)
    ->
    English (United States)
  • new Locale("en", "US", "POSIX").getDisplayName(Locale.US)
    ->
    English (United States,Computer)
  • new Locale("en").getDisplayName(Locale.FRANCE)
    ->
    anglais
  • new Locale("en", "US").getDisplayName(Locale.FRANCE)
    ->
    anglais (États-Unis)
  • new Locale("en", "US", "POSIX").getDisplayName(Locale.FRANCE)
    ->
    anglais (États-Unis,informatique)
    .

◆ getDisplayVariant() [1/2]

final String java.util.Locale.getDisplayVariant ( )
inline

Returns the full variant name in the default

Locale

for the variant code of this

Locale

. If there is no matching variant name, the variant code is returned.

◆ getDisplayVariant() [2/2]

String java.util.Locale.getDisplayVariant ( Locale  locale)
inline

Returns the full variant name in the specified

Locale

for the variant code of this

Locale

. If there is no matching variant name, the variant code is returned.

◆ getISO3Country()

String java.util.Locale.getISO3Country ( )
inline

Returns the three letter ISO country code which corresponds to the country code for this

Locale

.

◆ getISO3Language()

String java.util.Locale.getISO3Language ( )
inline

Returns the three letter ISO language code which corresponds to the language code for this

Locale

.

◆ getISOCountries()

static String [] java.util.Locale.getISOCountries ( )
inlinestatic

Returns an array of strings containing all the two-letter ISO country codes that can be used as the country code when constructing a

Locale

.

◆ getISOLanguages()

static String [] java.util.Locale.getISOLanguages ( )
inlinestatic

Returns an array of strings containing all the two-letter ISO language codes that can be used as the language code when constructing a

Locale

.

◆ getLanguage()

String java.util.Locale.getLanguage ( )
inline

Returns the language code for this

Locale

or the empty string if no language was set.

◆ getVariant()

String java.util.Locale.getVariant ( )
inline

Returns the variant code for this

Locale

or an empty

String

if no variant was set.

◆ setDefault()

static synchronized void java.util.Locale.setDefault ( Locale  locale)
inlinestatic

Overrides the default locale. This does not affect system configuration, and attempts to override the system-provided default locale may themselves be overridden by actual changes to the system configuration. Code that calls this method is usually incorrect, and should be fixed by passing the appropriate locale to each locale-sensitive method that's called.

◆ toString()

final String java.util.Locale.toString ( )
inline

Returns the string representation of this

Locale

. It consists of the language code, country code and variant separated by underscores. If the language is missing the string begins with an underscore. If the country is missing there are 2 underscores between the language and the variant. The variant cannot stand alone without a language and/or country code: in this case this method would return the empty string.

Examples: "en", "en_US", "_US", "en__POSIX", "en_US_POSIX"

Member Data Documentation

◆ CANADA

final Locale java.util.Locale.CANADA = new Locale(true, "en", "CA")
static

Locale constant for en_CA.

◆ CANADA_FRENCH

final Locale java.util.Locale.CANADA_FRENCH = new Locale(true, "fr", "CA")
static

Locale constant for fr_CA.

◆ CHINA

final Locale java.util.Locale.CHINA = new Locale(true, "zh", "CN")
static

Locale constant for zh_CN.

◆ CHINESE

final Locale java.util.Locale.CHINESE = new Locale(true, "zh", "")
static

Locale constant for zh.

◆ ENGLISH

final Locale java.util.Locale.ENGLISH = new Locale(true, "en", "")
static

Locale constant for en.

◆ FRANCE

final Locale java.util.Locale.FRANCE = new Locale(true, "fr", "FR")
static

Locale constant for fr_FR.

◆ FRENCH

final Locale java.util.Locale.FRENCH = new Locale(true, "fr", "")
static

Locale constant for fr.

◆ GERMAN

final Locale java.util.Locale.GERMAN = new Locale(true, "de", "")
static

Locale constant for de.

◆ GERMANY

final Locale java.util.Locale.GERMANY = new Locale(true, "de", "DE")
static

Locale constant for de_DE.

◆ ITALIAN

final Locale java.util.Locale.ITALIAN = new Locale(true, "it", "")
static

Locale constant for it.

◆ ITALY

final Locale java.util.Locale.ITALY = new Locale(true, "it", "IT")
static

Locale constant for it_IT.

◆ JAPAN

final Locale java.util.Locale.JAPAN = new Locale(true, "ja", "JP")
static

Locale constant for ja_JP.

◆ JAPANESE

final Locale java.util.Locale.JAPANESE = new Locale(true, "ja", "")
static

Locale constant for ja.

◆ KOREA

final Locale java.util.Locale.KOREA = new Locale(true, "ko", "KR")
static

Locale constant for ko_KR.

◆ KOREAN

final Locale java.util.Locale.KOREAN = new Locale(true, "ko", "")
static

Locale constant for ko.

◆ PRC

final Locale java.util.Locale.PRC = new Locale(true, "zh", "CN")
static

Locale constant for zh_CN.

◆ ROOT

final Locale java.util.Locale.ROOT = new Locale(true, "", "")
static

Locale constant for the root locale. The root locale has an empty language, country, and variant.

Since
1.6

◆ SIMPLIFIED_CHINESE

final Locale java.util.Locale.SIMPLIFIED_CHINESE = new Locale(true, "zh", "CN")
static

Locale constant for zh_CN.

◆ TAIWAN

final Locale java.util.Locale.TAIWAN = new Locale(true, "zh", "TW")
static

Locale constant for zh_TW.

◆ TRADITIONAL_CHINESE

final Locale java.util.Locale.TRADITIONAL_CHINESE = new Locale(true, "zh", "TW")
static

Locale constant for zh_TW.

◆ UK

final Locale java.util.Locale.UK = new Locale(true, "en", "GB")
static

Locale constant for en_GB.

◆ US

final Locale java.util.Locale.US = new Locale(true, "en", "US")
static

Locale constant for en_US.


The documentation for this class was generated from the following file: