Класс SimpleTimeZone
- Все реализуемые интерфейсы:
Serializable, Cloneable
public class SimpleTimeZone extends TimeZone
SimpleTimeZone — конкретный подкласс TimeZone, представляющий часовой пояс для использования с григорианским календарём. Класс хранит смещение относительно GMT, называемое базовым смещением, а также правила начала и окончания перехода на летнее время. Поскольку для каждого из этих значений хранится только одно значение, класс не может учитывать исторические изменения смещения относительно GMT и правил перехода на летнее время, за исключением того, что метод setStartYear позволяет указать год, начиная с которого действует переход на летнее время. Чтобы создать SimpleTimeZone с переходом на летнее время, этот переход можно описать набором правил: правилом начала и правилом окончания. День начала или окончания летнего времени задаётся комбинацией значений месяца, дня месяца и дня недели. Значение месяца представлено значением поля MONTH класса Calendar, например Calendar.MARCH. Значение дня недели представлено значением поля DAY_OF_WEEK класса Calendar, например SUNDAY. Комбинации значений имеют следующий смысл.
-
Точный день месяца
Чтобы указать точный день месяца, задайте точные значения для месяца и дня месяца, а для дня недели — ноль. Например, чтобы указать 1 марта, задайте для месяца значениеMARCH, для дня месяца — 1, а для дня недели — 0. -
День недели в указанную дату или после неё
Чтобы указать день недели в указанную дату месяца или после неё, задайте для месяца точное значение, для дня месяца — день, начиная с которого применяется правило, а для дня недели — отрицательное значение поляDAY_OF_WEEK. Например, чтобы указать второе воскресенье апреля, задайте для месяца значениеAPRIL, для дня месяца — 8, а для дня недели —-SUNDAY. -
День недели в указанную дату или до неё
Чтобы указать день недели в указанную дату месяца или до неё, задайте для дня месяца и дня недели отрицательные значения. Например, чтобы указать последнюю среду в день 21 марта или до него, задайте для месяца значениеMARCH, для дня месяца — -21, а для дня недели —-WEDNESDAY. -
Последний день недели месяца
Чтобы указать последний день недели месяца, задайте для дня недели значениеDAY_OF_WEEK, а для дня месяца — -1. Например, чтобы указать последнее воскресенье октября, задайте для месяца значениеOCTOBER, для дня недели —SUNDAY, а для дня месяца — -1.
WALL_TIME, STANDARD_TIME и UTC_TIME. Например, если переход на зимнее время происходит в 2:00 по местному времени, это можно задать как 7200000 миллисекунд в режиме WALL_TIME. В этом случае местное время для правила окончания означает то же, что и летнее время. Ниже приведены примеры параметров для создания объектов часового пояса.
// Base GMT offset: -8:00
// DST starts: at 2:00am in standard time
// on the first Sunday in April
// DST ends: at 2:00am in daylight time
// on the last Sunday in October
// Save: 1 hour
SimpleTimeZone(-28800000,
"America/Los_Angeles",
Calendar.APRIL, 1, -Calendar.SUNDAY,
7200000,
Calendar.OCTOBER, -1, Calendar.SUNDAY,
7200000,
3600000)
// Base GMT offset: +1:00
// DST starts: at 1:00am in UTC time
// on the last Sunday in March
// DST ends: at 1:00am in UTC time
// on the last Sunday in October
// Save: 1 hour
SimpleTimeZone(3600000,
"Europe/Paris",
Calendar.MARCH, -1, Calendar.SUNDAY,
3600000, SimpleTimeZone.UTC_TIME,
Calendar.OCTOBER, -1, Calendar.SUNDAY,
3600000, SimpleTimeZone.UTC_TIME,
3600000)
Эти правила задания параметров также применимы к методам установки правил, например setStartRule.- Начиная с версии:
- 1.1
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
STANDARD_TIME |
Константа режима, задающего время начала или окончания по стандартному времени. |
static final int |
UTC_TIME |
Константа режима, задающего время начала или окончания по UTC. |
static final int |
WALL_TIME |
Константа режима, задающего время начала или окончания по местному времени. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
SimpleTimeZone |
Создаёт SimpleTimeZone с указанным базовым смещением часового пояса относительно GMT и идентификатором часового пояса, без перехода на летнее время. |
SimpleTimeZone |
Создаёт SimpleTimeZone с указанным базовым смещением часового пояса относительно GMT, идентификатором часового пояса и правилами начала и окончания летнего времени. |
SimpleTimeZone |
Создаёт SimpleTimeZone с указанным базовым смещением часового пояса относительно GMT, идентификатором часового пояса и правилами начала и окончания летнего времени. |
SimpleTimeZone |
Создаёт SimpleTimeZone с указанным базовым смещением часового пояса относительно GMT, идентификатором часового пояса и правилами начала и окончания летнего времени. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Возвращает клон этого экземпляра SimpleTimeZone. |
boolean |
equals |
Сравнивает на равенство два объекта SimpleTimeZone. |
int |
getDSTSavings() |
Возвращает длительность в миллисекундах, на которую переводятся часы при переходе на летнее время. |
int |
getOffset |
Возвращает разницу в миллисекундах между местным временем и UTC с учётом как базового смещения, так и перехода на летнее время для указанной даты и времени. |
int |
getOffset |
Возвращает смещение этого часового пояса относительно UTC в указанный момент времени. |
int |
getRawOffset() |
Возвращает смещение этого часового пояса относительно GMT. |
int |
hashCode() |
Вычисляет хеш-код объекта SimpleDateFormat. |
boolean |
hasSameRules |
Возвращает true, если этот часовой пояс имеет те же правила и смещение, что и другой часовой пояс. |
boolean |
inDaylightTime |
Проверяет, приходится ли указанная дата на период летнего времени. |
boolean |
observesDaylightTime() |
Возвращает true, если в этом SimpleTimeZone используется летнее время. |
void |
setDSTSavings |
Задаёт длительность в миллисекундах, на которую переводятся часы при переходе на летнее время. |
void |
setEndRule |
Задаёт правило окончания летнего времени для фиксированной даты месяца. |
void |
setEndRule |
Задаёт правило окончания летнего времени. |
void |
setEndRule |
Задаёт правило окончания летнего времени для дня недели до или после указанной даты месяца, например первого понедельника в день 8-го числа или после него. |
void |
setRawOffset |
Задаёт базовое смещение часового пояса относительно GMT. |
void |
setStartRule |
Задаёт правило начала летнего времени для фиксированной даты месяца. |
void |
setStartRule |
Задаёт правило начала летнего времени. |
void |
setStartRule |
Задаёт правило начала летнего времени для дня недели до или после указанной даты месяца, например первого понедельника в день 8-го числа или после него. |
void |
setStartYear |
Задаёт год начала летнего времени. |
String |
toString() |
Возвращает строковое представление этого часового пояса. |
boolean |
useDaylightTime() |
Проверяет, используется ли в этом часовом поясе летнее время. |
Методы, объявленные в классе TimeZone
availableIDs, availableIDs, getAvailableIDs, getAvailableIDs, getDefault, getDisplayName, getDisplayName, getDisplayName, getDisplayName, getID, getTimeZone, getTimeZone, setDefault, setID, toZoneId
Подробное описание полей
WALL_TIME
public static final int WALL_TIME
- С версии:
- 1.4
- См. также:
STANDARD_TIME
public static final int STANDARD_TIME
- С версии:
- 1.4
- См. также:
UTC_TIME
public static final int UTC_TIME
- С версии:
- 1.4
- См. также:
Подробное описание конструкторов
SimpleTimeZone
public SimpleTimeZone(int rawOffset, String ID)
- Параметры:
-
rawOffset— базовое смещение часового пояса относительно GMT в миллисекундах. -
ID— название часового пояса, присваиваемое этому экземпляру.
SimpleTimeZone
public SimpleTimeZone(int rawOffset, String ID, int startMonth, int startDay, int startDayOfWeek, int startTime, int endMonth, int endDay, int endDayOfWeek, int endTime)
startTime, и endTime заданы по местному времени. Предполагается, что переход на летнее время составляет 3600000 миллисекунд (то есть один час). Этот конструктор эквивалентен: SimpleTimeZone(rawOffset,
ID,
startMonth,
startDay,
startDayOfWeek,
startTime,
SimpleTimeZone.WALL_TIME,
endMonth,
endDay,
endDayOfWeek,
endTime,
SimpleTimeZone.WALL_TIME,
3600000)
- Параметры:
-
rawOffset— заданное базовое смещение часового пояса относительно GMT. -
ID— идентификатор часового пояса, присваиваемый этому объекту. -
startMonth— месяц начала перехода на летнее время. Месяц — это значение поляMONTH(нумерация начинается с 0; например, 0 — январь). -
startDay— день месяца, в который начинается переход на летнее время. Особые случаи для этого параметра описаны в описании класса. -
startDayOfWeek— день недели, в который начинается переход на летнее время. Особые случаи для этого параметра описаны в описании класса. -
startTime— время начала перехода на летнее время по местному времени (в миллисекундах от начала дня); в данном случае это местное стандартное время. -
endMonth— месяц окончания перехода на летнее время. Месяц — это значение поляMONTH(нумерация начинается с 0; например, 9 — октябрь). -
endDay— день месяца, в который заканчивается переход на летнее время. Особые случаи для этого параметра описаны в описании класса. -
endDayOfWeek— день недели, в который заканчивается переход на летнее время. Особые случаи для этого параметра описаны в описании класса. -
endTime— время окончания перехода на летнее время по местному времени (в миллисекундах от начала дня); в данном случае это местное летнее время. - Исключения:
-
IllegalArgumentException— если параметры месяца, дня, дня недели или времени выходят за допустимые пределы для правила начала или окончания
SimpleTimeZone
public SimpleTimeZone(int rawOffset, String ID, int startMonth, int startDay, int startDayOfWeek, int startTime, int endMonth, int endDay, int endDayOfWeek, int endTime, int dstSavings)
startTime, и endTime заданы по местному времени. Этот конструктор эквивалентен: SimpleTimeZone(rawOffset,
ID,
startMonth,
startDay,
startDayOfWeek,
startTime,
SimpleTimeZone.WALL_TIME,
endMonth,
endDay,
endDayOfWeek,
endTime,
SimpleTimeZone.WALL_TIME,
dstSavings)
- Параметры:
-
rawOffset— заданное базовое смещение часового пояса относительно GMT. -
ID— идентификатор часового пояса, присваиваемый этому объекту. -
startMonth— месяц начала перехода на летнее время. Месяц — это значение поляMONTH(нумерация начинается с 0; например, 0 — январь). -
startDay— день месяца, в который начинается переход на летнее время. Особые случаи для этого параметра описаны в описании класса. -
startDayOfWeek— день недели, в который начинается переход на летнее время. Особые случаи для этого параметра описаны в описании класса. -
startTime— время начала перехода на летнее время по местному времени; в данном случае это местное стандартное время. -
endMonth— месяц окончания перехода на летнее время. Месяц — это значение поляMONTH(нумерация начинается с 0; например, 9 — октябрь). -
endDay— день месяца, в который заканчивается переход на летнее время. Особые случаи для этого параметра описаны в описании класса. -
endDayOfWeek— день недели, в который заканчивается переход на летнее время. Особые случаи для этого параметра описаны в описании класса. -
endTime— время окончания перехода на летнее время по местному времени; в данном случае это местное летнее время. -
dstSavings— продолжительность перехода на летнее время в миллисекундах. - Исключения:
-
IllegalArgumentException— если параметры месяца, дня, дня недели или времени выходят за допустимые пределы для правила начала или окончания - С версии:
- 1.2
SimpleTimeZone
public SimpleTimeZone(int rawOffset, String ID, int startMonth, int startDay, int startDayOfWeek, int startTime, int startTimeMode, int endMonth, int endDay, int endDayOfWeek, int endTime, int endTimeMode, int dstSavings)
startTime и endTime. Режим задает wall
time, standard time или UTC
time.- Параметры:
-
rawOffset— заданное базовое смещение часового пояса относительно GMT. -
ID— идентификатор часового пояса, присваиваемый этому объекту. -
startMonth— месяц начала перехода на летнее время. Месяц — это значение поляMONTH(нумерация начинается с 0; например, 0 — январь). -
startDay— день месяца, в который начинается переход на летнее время. Особые случаи для этого параметра описаны в описании класса. -
startDayOfWeek— день недели, в который начинается переход на летнее время. Особые случаи для этого параметра описаны в описании класса. -
startTime— время начала перехода на летнее время в режиме времени, заданном параметромstartTimeMode. -
startTimeMode— режим времени начала, заданный параметром startTime. -
endMonth— месяц окончания перехода на летнее время. Месяц — это значение поляMONTH(нумерация начинается с 0; например, 9 — октябрь). -
endDay— день месяца, в который заканчивается переход на летнее время. Особые случаи для этого параметра описаны в описании класса. -
endDayOfWeek— день недели, в который заканчивается переход на летнее время. Особые случаи для этого параметра описаны в описании класса. -
endTime— время окончания перехода на летнее время в режиме времени, заданном параметромendTimeMode. -
endTimeMode— режим времени окончания, заданный параметром endTime -
dstSavings— продолжительность перехода на летнее время в миллисекундах. - Исключения:
-
IllegalArgumentException— если параметры месяца, дня, дня недели, режима времени или времени выходят за допустимые пределы для правила начала или окончания либо если значение режима времени недопустимо. - С версии:
- 1.4
- См. также:
Подробное описание методов
setStartYear
public void setStartYear(int year)
- Параметры:
-
year— год начала перехода на летнее время.
setStartRule
public void setStartRule(int startMonth, int startDay, int startDayOfWeek, int startTime)
setStartRule(Calendar.APRIL, 1, Calendar.SUNDAY, 2*60*60*1000);
- Параметры:
-
startMonth— месяц начала перехода на летнее время. Месяц — это значение поляMONTH(нумерация начинается с 0; например, 0 — январь). -
startDay— день месяца, в который начинается переход на летнее время. Особые случаи для этого параметра описаны в описании класса. -
startDayOfWeek— день недели, в который начинается переход на летнее время. Особые случаи для этого параметра описаны в описании класса. -
startTime— время начала перехода на летнее время по местному времени; в данном случае это местное стандартное время. - Исключения:
-
IllegalArgumentException— если параметрыstartMonth,startDay,startDayOfWeekилиstartTimeвыходят за допустимые пределы
setStartRule
public void setStartRule(int startMonth, int startDay, int startTime)
setStartRule(startMonth, startDay, 0, startTime)
- Параметры:
-
startMonth— месяц начала перехода на летнее время. Месяц — это значение поляMONTH(нумерация начинается с 0; например, 0 — январь). -
startDay— день месяца, в который начинается переход на летнее время. -
startTime— время начала перехода на летнее время по местному времени; в данном случае это местное стандартное время. Особые случаи для этого параметра описаны в описании класса. - Исключения:
-
IllegalArgumentException— если параметрыstartMonth,startDayOfMonthилиstartTimeвыходят за допустимые пределы - С версии:
- 1.2
setStartRule
public void setStartRule(int startMonth, int startDay, int startDayOfWeek, int startTime, boolean after)
- Параметры:
-
startMonth— месяц начала перехода на летнее время. Месяц — это значение поляMONTH(нумерация начинается с 0; например, 0 — январь). -
startDay— день месяца, в который начинается переход на летнее время. -
startDayOfWeek— день недели, в который начинается переход на летнее время. -
startTime— время начала перехода на летнее время по местному времени; в данном случае это местное стандартное время. -
after— если значение равно true, правило выбирает первыйdayOfWeek, наступающий после или вdayOfMonth. Если значение равно false, правило выбирает последнийdayOfWeek, наступающий до или вdayOfMonth. - Исключения:
-
IllegalArgumentException— если параметрыstartMonth,startDay,startDayOfWeekилиstartTimeвыходят за допустимые пределы - С версии:
- 1.2
setEndRule
public void setEndRule(int endMonth, int endDay, int endDayOfWeek, int endTime)
setEndRule(Calendar.OCTOBER, -1, Calendar.SUNDAY, 2*60*60*1000);
- Параметры:
-
endMonth— месяц окончания перехода на летнее время. Месяц — это значение поляMONTH(нумерация начинается с 0; например, 9 — октябрь). -
endDay— день месяца, в который заканчивается переход на летнее время. Особые случаи для этого параметра описаны в описании класса. -
endDayOfWeek— день недели, в который заканчивается переход на летнее время. Особые случаи для этого параметра описаны в описании класса. -
endTime— время окончания перехода на летнее время по местному времени (в миллисекундах от начала дня); в данном случае это местное летнее время. - Исключения:
-
IllegalArgumentException— если параметрыendMonth,endDay,endDayOfWeekилиendTimeвыходят за допустимые пределы
setEndRule
public void setEndRule(int endMonth, int endDay, int endTime)
setEndRule(endMonth, endDay, 0, endTime)
- Параметры:
-
endMonth— месяц окончания перехода на летнее время. Месяц — это значение поляMONTH(нумерация начинается с 0; например, 9 — октябрь). -
endDay— день месяца, в который заканчивается переход на летнее время. -
endTime— время окончания перехода на летнее время по местному времени (в миллисекундах от начала дня); в данном случае это местное летнее время. - Исключения:
-
IllegalArgumentException— параметрыendMonth,endDayилиendTimeвыходят за допустимые пределы - С версии:
- 1.2
setEndRule
public void setEndRule(int endMonth, int endDay, int endDayOfWeek, int endTime, boolean after)
- Параметры:
-
endMonth— месяц окончания перехода на летнее время. Месяц — это значение поляMONTH(нумерация начинается с 0; например, 9 — октябрь). -
endDay— день месяца, в который заканчивается переход на летнее время. -
endDayOfWeek— день недели, в который заканчивается переход на летнее время. -
endTime— время окончания перехода на летнее время по местному времени (в миллисекундах от начала дня); в данном случае это местное летнее время. -
after— если значение равно true, правило выбирает первыйendDayOfWeek, наступающий после или вendDay. Если значение равно false, правило выбирает последнийendDayOfWeek, наступающий доendDayчисла месяца или в этот день. - Исключения:
-
IllegalArgumentException— параметрыendMonth,endDay,endDayOfWeekилиendTimeвыходят за допустимые пределы - С версии:
- 1.2
getOffset
public int getOffset(long date)
getOffset
public int getOffset(int era, int year, int month, int day, int dayOfWeek, int millis)
GregorianCalendar по умолчанию в качестве базового календаря, например, для определения високосных лет. Не используйте результат этого метода с календарем, отличным от GregorianCalendar по умолчанию. Примечание: в общем случае клиентам следует использовать Calendar.get(ZONE_OFFSET) + Calendar.get(DST_OFFSET) вместо вызова этого метода.
- Определен в:
-
getOffsetв классеTimeZone - Параметры:
-
era— эра указанной даты. -
year— год указанной даты. -
month— месяц указанной даты. Нумерация месяцев начинается с 0; например, 0 — январь. -
day— день месяца указанной даты. -
dayOfWeek— день недели указанной даты. -
millis— миллисекунды от начала дня по местному стандартному времени. - Возвращает:
- количество миллисекунд, которое нужно прибавить к UTC, чтобы получить местное время.
- Исключения:
-
IllegalArgumentException— параметрыera,month,day,dayOfWeekилиmillisвыходят за допустимые пределы - См. также:
getRawOffset
public int getRawOffset()
- Определен в:
-
getRawOffsetв классеTimeZone - Возвращает:
- значение смещения относительно GMT в миллисекундах
- См. также:
setRawOffset
public void setRawOffset(int offsetMillis)
- Определен в:
-
setRawOffsetв классеTimeZone - Параметры:
-
offsetMillis— заданное базовое смещение часового пояса относительно GMT. - См. также:
setDSTSavings
public void setDSTSavings(int millisSavedDuringDST)
- Параметры:
-
millisSavedDuringDST— количество миллисекунд, на которое время опережает стандартное время при действии правил перехода на летнее время. Положительное число, обычно один час (3600000). - С версии:
- 1.2
- См. также:
getDSTSavings
public int getDSTSavings()
- Переопределяет:
-
getDSTSavingsв классеTimeZone - Возвращает:
- количество миллисекунд, на которое время опережает стандартное при действии правил перехода на летнее время, или 0 (ноль), если в этом часовом поясе не используется летнее время.
- С версии:
- 1.2
- См. также:
useDaylightTime
public boolean useDaylightTime()
- Определен в:
-
useDaylightTimeв классеTimeZone - Возвращает:
- true, если в этом часовом поясе используется летнее время; в противном случае — false.
- См. также:
observesDaylightTime
public boolean observesDaylightTime()
true, если в этом SimpleTimeZone используется летнее время. Этот метод эквивалентен useDaylightTime().- Переопределяет:
-
observesDaylightTimeв классеTimeZone - Возвращает:
-
true, если в этомSimpleTimeZoneиспользуется летнее время; в противном случае —false. - С версии:
- 1.7
- См. также:
inDaylightTime
public boolean inDaylightTime(Date date)
- Определен в:
-
inDaylightTimeв классеTimeZone - Требования к реализации:
- Реализация по умолчанию выбрасывает
NullPointerException, еслиdateимеет значениеnull - Параметры:
-
date— указанная дата. - Возвращает:
- true, если на указанную дату действует летнее время; в противном случае — false.
- Исключения:
-
NullPointerException— этот метод может выброситьNullPointerException, еслиdateимеет значениеnull
clone
hashCode
equals
public boolean equals(Object obj)
SimpleTimeZone на равенство.hasSameRules
public boolean hasSameRules(TimeZone other)
true, если этот часовой пояс имеет те же правила и смещение, что и другой часовой пояс.- Переопределяет:
-
hasSameRulesв классеTimeZone - Параметры:
-
other— объект TimeZone, с которым выполняется сравнение - Возвращает:
-
true, если указанный часовой пояс является SimpleTimeZone и имеет те же правила и смещение, что и этот - С версии:
- 1.2
toString
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/SimpleTimeZone.html