Локальные установки

 

Некоторые данные — даты, время — традиционно представляются в разных местностях по-разному. Например, дата в России выводится в формате число, месяц, год через точку: 27.06.01. В США принята запись месяц/число/год через наклонную черту: 06/27/01.

Совокупность таких форматов для данной местности, как говорят на жаргоне «локаль», хранится в объекте класса Locale из пакета java.utii . Для создания такого объекта достаточно знать язык language и местность country. Иногда требуется третья характеристика — вариант variant , определяющая программный продукт, например, «WIN», «MAC», «POSIX».

По умолчанию местные установки определяются операционной системой и читаются из системных свойств.

user.language = ru                  // Язык — русский

user.region = RU                   // Местность — Россия

file.encoding = Cpl251           // Байтовая кодировка — CP1251

Они определяют русскую локаль и локальную кодировку байтовых символов. Локаль, установленную по умолчанию на той машине, где выполняется программа, можно выяснить статическим методом Locale.getoefauito .

Чтобы работать с другой локалью, ее надо прежде всего создать. Для этого в классе Locale есть два конструктора:

Locale(String language, String country)

Locale(String language, String country. String variant)

Параметр language — это строка из двух строчных букв, определенная стандартом ISO639, например, «ru», «fr», «en». Параметр country — строка из двух прописных букв, определенная стандартом ISO3166, например, «RU», «us», «ев» . Параметр variant не определяется стандартом, это может быть,

например, строка » Traditional «.

Локаль часто указывают одной строкой «ru_RU», «en_GB», «en_us», «en_CA « и т. д.

После создания локали можно сделать ее локалью по умолчанию статическим методом:

Locale.setDefault(Locale newLocale);

Несколько статических методов класса Locale позволяют получить параметры локали по умолчанию, или локали, заданной параметром locale :

string getcountryo — стандартный код страны из двух букв;

string getDispiayCountry() — страна записывается словом, обычно выводящимся на экран;

String getDisplayCountry (Locale locale) — то же для указанной локали.

Такие же методы есть для языка и варианта.

Можно просмотреть список всех локалей, определенных для данной JVM, и их параметров, выводимый в стандартном виде:

Locale[] getAvailableLocales()

String!] getlSOCountries()

String[] getlSOLanguages()

Установленная локаль в дальнейшем используется при выводе данных в местном формате.