The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available.
See Java Language Changes for a summary of updated language features in Java SE 9 and subsequent releases.
See JDK Release Notes for information about new features, enhancements, and removed or deprecated options for all JDK releases.
An internationalized program can display information differently throughout the world. For example, the program will display different messages in Paris, Tokyo, and New York. If the localization process has been fine-tuned, the program will display different messages in New York and London to account for the differences between American and British English. How does an internationalized program identify the appropriate language and region of its end users? Easy. It references a Locale
object.
A Locale
object is an identifier for a particular combination of language and region. If a class varies its behavior according to Locale
, it is said to be locale-sensitive. For example, the NumberFormat
class is locale-sensitive; the format of the number it returns depends on the Locale
. Thus NumberFormat
may return a number as 902 300 (France), or 902.300 (Germany), or 902,300 (United States). Locale
objects are only identifiers. The real work, such as formatting and detecting word boundaries, is performed by the methods of the locale-sensitive classes.
The following sections explain how to work with Locale
objects:
When creating a Locale
object, you usually specify a language code and a country code. A third parameter, the variant, is optional.
This section shows you how to add a Unicode locale extension or a private use extension to a Locale.
Locale-sensitive classes support only certain Locale
definitions. This section shows you how to determine which Locale
definitions are supported.
This section describes the internationalization support for language tags, language tags filtering, and language tags lookup.
On the Java platform you do not specify a global Locale
by setting an environment variable before running the application. Instead you either rely on the default Locale or assign a Locale
to each locale-sensitive object.
This section explains how to enable plug-in of locale-dependent data and services. These SPIs (Service Provider Interface) provides support of more locales in addition to the currently available locales.