Иллюстрированный самоучитель по Java

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

Некоторые данные – даты, время – традиционно представляются в разных местностях по-разному. Например, дата в России выводится в формате число, месяц, год через точку: 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.getoefault().

Чтобы работать с другой локалью, ее надо прежде всего создать. Для этого в классе 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 getcountry() – стандартный код страны из двух букв;
  • string getDispiayCountry() – страна записывается словом, обычно выводящимся на экран;
  • String getDisplayCountry (Locale locale) – то же для указанной локали.

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

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

Locale[] getAvailableLocales()
String[] getlSOCountries()
String[] getlSOLanguages()

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

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.