Читаем Java 7 полностью

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

Совокупность таких форматов для данной местности, как говорят на жаргоне "локаль", хранится в объекте класса Locale из пакета java.util. Для создания такого объекта достаточно знать язык language и местность country. Иногда требуется третья характеристика — вариант variant, определяющая программный продукт, например: "win", "mac",

"POSIX".

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

Посмотрите на следующие строки (см. также рис. 6.2):

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

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

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

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

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

Locale(String language, String country);

Locale(String language, String country, String variant);

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

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

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

Locale.setDefault(Locale newLocale);

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

□ String getCountry() — стандартный код страны из двух букв;

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

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

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

Можно просмотреть список всех локалей, определенных для данной JVM (Java Virtual Machine, виртуальная машина Java), и их параметров, выводимый в стандартном виде:

Locale[] getAvailableLocales();

String[] getISOCountries();

String[] getlSOLanguages();

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

Работа с датами и временем

Методы работы с датами и показаниями времени собраны в два класса из пакета

java.util: Calendar и Date.

Объект класса Date хранит число миллисекунд, прошедших с 1 января 1970 г. 00:00:00 по Гринвичу. Это "день рождения" операционной системы UNIX, он называется "Epoch".

Класс Date удобно использовать для отсчета промежутков времени в миллисекундах.

Получить текущее число миллисекунд, прошедших с момента Epoch на той машине, где выполняется программа, можно статическим методом System.currentTimeMillis ( ).

В классе Date два конструктора. Конструктор Date () заносит в создаваемый объект текущее время машины, на которой выполняется программа, по системным часам, а конструктор Date (long millisec) — указанное число.

Получить значение, хранящееся в объекте, можно методом long getTime (), установить новое значение — методом setTime(long newTime).

Три логических метода сравнивают отсчеты времени:

□ boolean after(long when) — возвращает true, если время when больше данного;

□ boolean before(long when) — возвращает true, если время when меньше данного;

□ boolean after(Object when) — возвращает true, если when — объект класса Date и времена совпадают.

Еще два метода, сравнивая отсчеты времени, возвращают отрицательное число типа int, если данное время меньше параметра when; нуль, если времена совпадают; положительное число, если данное время больше параметра when:

□ int compareTo(Date when);

□ int compareTo (Object when) — если when не относится к объектам класса Date, создается исключительная ситуация.

Преобразование миллисекунд, хранящихся в объектах класса Date, в текущее время и дату производится методами класса Calendar.

Часовой пояс и летнее время

Методы установки и изменения часового пояса (time zone), а также летнего времени (Daylight Savings Time, DST), собраны в абстрактном классе TimeZone из пакета java.util. В этом же пакете есть его реализация-подкласс SimpleTimeZone.

В классе SimpleTimeZone три конструктора, но чаще всего объект создается статическим методом getDefault (), возвращающим часовой пояс, установленный на машине, выполняющей программу.

В этих классах множество методов работы с часовыми поясами, но в большинстве случаев требуется только узнать часовой пояс на машине, выполняющей программу, статическим методом getDefault (), проверить, осуществляется ли переход на летнее время, логическим методом useDaylightTime() , и установить часовой пояс методом

Перейти на страницу:

Все книги серии В подлиннике

Java 7
Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др. Дано подробное изложение последней версии сервлетов, технологии JSP и библиотек тегов JSTL. Около двухсот законченных программ иллюстрируют рассмотренные приемы программирования. Приведена подробная справочная информация о классах и методах Core Java API.

Ильдар Шаукатович Хабибуллин

Программирование, программы, базы данных

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных