Чтение онлайн

на главную - закладки

Жанры

Программирование на Java

Вязовик Н.А.

Шрифт:

idArr = tz.getAvailableIDs(rawOffset);

for(int cnt=0;cnt < idArr.length;cnt++) {

tz = TimeZone.getTimeZone(idArr[cnt]);

System.out.println(test.padr(tz.getDisplayName+

tz.getID,64) + " raw offset=" + tz.getRawOffset +

";hour offset=(" + tz.getRawOffset/ (1000 60 60 ) + ")");

}

}

String padr(String str,int len) {

if(len - str.length > 0) {

char[] buf = new char[len - str.length];

Arrays.fill(buf,' ');

return str + new String(buf);

} else {

return str.substring(0,len);

}

}

}

Пример 14.9.

Результатом будет:

Current TimeZone Moscow Standard TimeEurope/Moscow

TimeZones same as for Moscow

Eastern African TimeAfrica/Addis_Aba raw offset=10800000;hour offset=(3)

Eastern African TimeAfrica/Asmera raw offset=10800000;hour offset=(3)

Eastern African TimeAfrica/Dar_es_Sa raw offset=10800000;hour offset=(3)

Eastern African TimeAfrica/Djibouti raw offset=10800000;hour offset=(3)

Eastern African TimeAfrica/Kampala raw offset=10800000;hour offset=(3)

Eastern African TimeAfrica/Khartoum raw offset=10800000;hour offset=(3)

Eastern African TimeAfrica/Mogadishu raw offset=10800000;hour offset=(3)

Eastern African TimeAfrica/Nairobi raw offset=10800000;hour offset=(3)

Arabia Standard TimeAsia/Aden raw offset=10800000;hour offset=(3)

Arabia Standard TimeAsia/Baghdad raw offset=10800000;hour offset=(3)

Arabia Standard TimeAsia/Bahrain raw offset=10800000;hour offset=(3)

Arabia Standard TimeAsia/Kuwait raw offset=10800000;hour offset=(3)

Arabia Standard TimeAsia/Qatar raw offset=10800000;hour offset=(3)

Arabia Standard TimeAsia/Riyadh raw offset=10800000;hour offset=(3)

Eastern African TimeEAT raw offset=10800000;hour offset=(3)

Moscow Standard TimeEurope/Moscow raw offset=10800000;hour offset=(3)

Eastern African TimeIndian/Antananar raw offset=10800000;hour offset=(3)

Eastern African TimeIndian/Comoro raw offset=10800000;hour offset=(3)

Eastern African TimeIndian/Mayotte raw offset=10800000;hour offset=(3)

Пример 14.10.

Класс SimpleTimeZone

Класс SimpleTimeZone, как потомок TimeZone, реализует его абстрактные методы и предназначен для применения в настройках, использующих Григорианский календарь. В большинстве случаев нет необходимости создавать экземпляр данного класса с помощью конструктора. Вместо этого лучше использовать статические методы, которые возвращают тип TimeZone, рассмотренные в предыдущем параграфе. Единственная, пожалуй, причина для использования конструктора - необходимость задания нестандартных правил перехода на зимнее и летнее время.

В классе SimpleTimeZone определено три конструктора. Рассмотрим наиболее полный с точки зрения функциональности вариант, который, помимо временной зоны, задает летнее и зимнее время.

public SimpleTimeZone(int rawOffset,

String ID,

int startMonth,

int startDay,

int startDayOfWeek,

int startTime,

int endMonth,

int endDay,

int endDayOfWeek,

int endTime)

rawOffset - временное смещение относительно гринвича;

ID - идентификатор временной зоны (см. пред.параграф);

startMonth - месяц перехода на летнее время;

startDay - день месяца перехода на летнее время*;

startDayOfWeek - день недели перехода на летнее время*;

startTime - время перехода на летнее время (указывается в миллисекундах);

endMonth - месяц окончания действия летнего времени;

endDay - день окончания действия летнего времени*;

endDayOfWeek - день недели окончания действия летнего времени*;

endTime - время окончания действия летнего времени (указывается в миллисекундах).

Перевод часов на зимний и летний вариант исчисления времени определяется специальным правительственным указом. Обычно переход на летнее время происходит в 2 часа в последнее воскресенье марта, а переход на зимнее время - в 3 часа в последнее воскресенье октября.

Алгоритм расчета таков:

* если startDay=1 и установлен день недели, то будет вычисляться первый день недели startDayOfWeek месяца startMonth (например, первое воскресенье);

* если startDay=-1 и установлен день недели, то будет вычисляться последний день недели startDayOfWeek месяца startMonth (например, последнее воскресенье);

* если день недели startDayOfWeek установлен в 0, то будет вычисляться число startDay конкретного месяца startMonth ;

* для того, чтобы установить день недели после конкретного числа, специфицируется отрицательное значение дня недели. Например, чтобы указать первый понедельник после 23 февраля, используется вот такой набор: startDayOfWeek=-MONDAY, startMonth=FEBRUARY, startDay=23

* для того, чтобы указать последний день недели перед каким-либо числом, указывается отрицательное значение этого числа и отрицательное значение дня недели. Например, для того, чтобы указать последнюю субботу перед 23 февраля, необходимо задать такой набор параметров: startDayOfWeek=-SATURDAY, startMonth=FEBRUARY, startDay=-23;

* все вышеперечисленное относится также и к окончанию действия летнего времени.

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

Поделиться:
Популярные книги

Гранит науки. Том 2

Зот Бакалавр
2. Героями не становятся, ими умирают
Фантастика:
фэнтези
5.00
рейтинг книги
Гранит науки. Том 2

Последний Паладин

Саваровский Роман
1. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин

Я все еще не царь. Книга XXVI

Дрейк Сириус
26. Дорогой барон!
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Я все еще не царь. Книга XXVI

Газлайтер. Том 14

Володин Григорий Григорьевич
14. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Газлайтер. Том 14

Эволюционер из трущоб. Том 6

Панарин Антон
6. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Эволюционер из трущоб. Том 6

Звездная Кровь. Экзарх I

Рокотов Алексей
1. Экзарх
Фантастика:
боевая фантастика
рпг
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Звездная Кровь. Экзарх I

Архонт росский

Мазин Александр Владимирович
17. Варяг
Фантастика:
попаданцы
5.00
рейтинг книги
Архонт росский

Кодекс Охотника. Книга XXXV

Винокуров Юрий
35. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXXV

Наследник с Меткой Охотника

Тарс Элиан
1. Десять Принцев Российской Империи
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Наследник с Меткой Охотника

Эпоха Опустошителя. Том II

Павлов Вел
2. Вечное Ристалище
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эпоха Опустошителя. Том II

Кодекс Охотника. Книга XXV

Винокуров Юрий
25. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
6.25
рейтинг книги
Кодекс Охотника. Книга XXV

Играть... в тебя

Зайцева Мария
3. Звериные повадки Симоновых
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Играть... в тебя

Японский городовой

Зот Бакалавр
7. Героями не становятся, ими умирают
Фантастика:
фэнтези
попаданцы
5.80
рейтинг книги
Японский городовой

Эргоном: Восхождение берсерка

Глебов Виктор
2. Эргоном
Фантастика:
фэнтези
попаданцы
аниме
5.20
рейтинг книги
Эргоном: Восхождение берсерка