Часовой пояс и летнее время. Класс Calendar.
Методы установки и изменения часового пояса (time zone), а также летнего времени DST (Daylight Savings Time), собраны в абстрактном классе Timezone из пакета java.utii. В этом же пакете есть его реализация – подкласс SimpleTimeZone.
В классе simpieTimeZon e три конструктора, но чаще всего объект создается статическим методом getoefault(), возвращающим часовой пояс, установленный на машине, выполняющей программу.
В этих классах множество методов работы с часовыми поясами, но в большинстве случаев требуется только узнать часовой пояс на машине, выполняющей программу, статическим методом getDefault (), проверить, осуществляется ли переход на летнее время, логическим методом useDaylightTime (), и установить часовой пояс методом setDef ault (TimeZone zone).
Класс Calendar
Класс Calendar – абстрактный, в нем собраны общие свойства календарей: юлианского, григорианского, лунного. В Java API пока есть только одна его реализация – подкласс GregorianCalendar.
Поскольку calendar – абстрактный класс, его экземпляры создаются четырьмя статическими методами по заданной локали и/или часовому поясу:
- Calendar getlnstance()
- Calendar getlnstance(Locale loc)
- Calendar getlnstance(TimeZone tz)
- Calendar getlnstance(TimeZone tz, Locale loc)
Для работы с месяцами определены целочисленные константы от JANUARY до DECEMBER, 3 для работы с днями недели – константы MONDAY до SUNDAY.
Первый день недели можно узнать методом int getFirstDayOfweek(), a установить – методом setFirstDayOfWeek(int day), например:
setFirstDayOfWeek(Calendar.MONDAY)
Остальные методы позволяют просмотреть время и часовой пояс или установить их.