|
Локальные
установки
Некоторые данные — даты, время —
традиционно представляются в разных местностях по-разному. Например, дата в
России выводится в формате число, месяц, год через точку: 27.06.01. В США принята
запись месяц/число/год через наклонную черту: 06/27/01.
Совокупность таких форматов для
данной местности, как говорят на жаргоне "локаль", хранится в объекте
класса
Locale
из пакета
java.utii
.
Для создания такого объекта достаточно знать язык
language
и местность country. Иногда требуется третья характеристика — вариант
variant
,
определяющая программный продукт, например,
"WIN",
"MAC", "POSIX".
По умолчанию местные установки определяются
операционной системой и читаются из системных свойств. Посмотрите на строки
(см. рис. 6.2):
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()
Установленная локаль в дальнейшем
используется при выводе данных в местном формате.
|