Класс SimpleTimeZone
- Все реализованные интерфейсы:
-
Serializable,Cloneable
public class SimpleTimeZone extends TimeZone
SimpleTimeZone — это конкретный подкласс TimeZone, который представляет часовой пояс для использования с григорианским календарем. Класс хранит смещение от GMT, называемое *сырым смещением*, и правила начала и окончания летнего времени. Поскольку он хранит только отдельные значения для каждого, он не может обрабатывать исторические изменения в смещении от GMT и графике летнего времени, за исключением того, что метод setStartYear может указать год, когда график летнего времени начинает действовать. Чтобы создать SimpleTimeZone с графиком летнего времени, график можно описать набором правил, *правилом начала* и *правилом окончания*. День, когда начинается или заканчивается летнее время, определяется комбинацией значений *месяца*, *числа месяца* и *дня недели*. Значение *месяца* представлено значением поля календаря MONTH, например, Calendar.MARCH. Значение *дня недели* представлено значением поля календаря DAY_OF_WEEK, например, 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, если этот часовой пояс использует летнее время. |
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() |
Определяет, использует ли этот часовой пояс летнее время. |
Методы, унаследованные от класса java.util.TimeZone
getAvailableIDs, getAvailableIDs, getDefault, getDisplayName, getDisplayName, getDisplayName, getDisplayName, getID, getTimeZone, getTimeZone, setDefault, setID, toZoneId
Подробное описание полей
WALL_TIME
public static final int WALL_TIME
- Since:
- 1.4
- См. также:
STANDARD_TIME
public static final int STANDARD_TIME
- Since:
- 1.4
- См. также:
UTC_TIME
public static final int UTC_TIME
- Since:
- 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 для января). -
startDay- Число месяца, в который начинается летнее время. См. описание класса для особых случаев этого параметра. -
startDayOfWeek- День недели начала летнего времени. См. описание класса для особых случаев этого параметра. -
startTime- Время начала летнего времени по местному времени реальных часов (в миллисекундах в течение дня), которое в данном случае является местным стандартным временем. -
endMonth- Месяц окончания летнего времени. Месяц — это значение поляMONTH(с нуля. Например, 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)
- Parameters:
-
rawOffset- Заданное базовое смещение часового пояса от GMT. -
ID- Идентификатор часового пояса, который присваивается этому объекту. -
startMonth- Месяц начала летнего времени. Месяц — это значение поляMONTH(0-основанное. Например, 0 для января). -
startDay- Число месяца, в который начинается летнее время. См. описание класса для особых случаев этого параметра. -
startDayOfWeek- День недели начала летнего времени. См. описание класса для особых случаев этого параметра. -
startTime- Время начала летнего времени в местном времени реальных часов, которое в этом случае является местным стандартным временем. -
endMonth- Месяц окончания летнего времени. Месяц — это значение поляMONTH(0-основанное. Например, 9 для октября). -
endDay- Число месяца, в который заканчивается летнее время. См. описание класса для особых случаев этого параметра. -
endDayOfWeek- День недели окончания летнего времени. См. описание класса для особых случаев этого параметра. -
endTime- Время окончания летнего времени в местном времени реальных часов, которое в этом случае является местным летним временем. -
dstSavings- Количество времени в миллисекундах, сэкономленное в летнее время. - Throws:
-
IllegalArgumentException- если месяц, день, день недели или время параметров находятся вне диапазона для правила начала или окончания - Since:
- 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.- Parameters:
-
rawOffset- Заданное базовое смещение часового пояса от GMT. -
ID- Идентификатор часового пояса, который присваивается этому объекту. -
startMonth- Месяц начала летнего времени. Месяц — это значение поляMONTH(0-основанное. Например, 0 для января). -
startDay- Число месяца, в который начинается летнее время. См. описание класса для особых случаев этого параметра. -
startDayOfWeek- День недели начала летнего времени. См. описание класса для особых случаев этого параметра. -
startTime- Время начала летнего времени в режиме времени, указанном вstartTimeMode. -
startTimeMode- Режим времени начала, указанный параметром startTime. -
endMonth- Месяц окончания летнего времени. Месяц — это значение поляMONTH(0-основанное. Например, 9 для октября). -
endDay- Число месяца, в который заканчивается летнее время. См. описание класса для особых случаев этого параметра. -
endDayOfWeek- День недели окончания летнего времени. См. описание класса для особых случаев этого параметра. -
endTime- Время окончания летнего времени в режиме времени, указанном вendTimeMode. -
endTimeMode- Режим времени окончания, указанный параметром endTime -
dstSavings- Количество времени в миллисекундах, сэкономленное в летнее время. - Throws:
-
IllegalArgumentException- если месяц, день, день недели, режим времени или параметры времени находятся вне диапазона для правила начала или окончания, или если значение режима времени недействительно. - Since:
- 1.4
- See Also:
Подробное описание методов
setStartYear
public void setStartYear(int year)
- Parameters:
-
year- Год начала летнего времени.
УстановитьНачалоDST
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выходят за пределы допустимых значений
УстановитьНачалоDST
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
УстановитьНачалоDST
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
УстановитьКонецDST
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 - Возвращает:
- значение смещения по Гринвичу в миллисекундах
- См. также:
setRawOffset
public void setRawOffset(int offsetMillis)
- Specified by:
-
setRawOffsetin classTimeZone - Parameters:
-
offsetMillis- заданное базовое смещение часовой зоны по отношению к Гринвичу. - See Also:
setDSTSavings
public void setDSTSavings(int millisSavedDuringDST)
- Parameters:
-
millisSavedDuringDST- количество миллисекунд, на которое время смещается относительно стандартного времени, когда действуют правила летнего времени. Положительное число, обычно один час (3600000). - Since:
- 1.2
- See Also:
getDSTSavings
public int getDSTSavings()
- Overrides:
-
getDSTSavingsin classTimeZone - Returns:
- количество миллисекунд, на которое время смещается относительно стандартного времени при действии правил летнего времени, или 0 (ноль), если эта часовая зона не использует летнее время.
- Since:
- 1.2
- See Also:
useDaylightTime
public boolean useDaylightTime()
- Specified by:
-
useDaylightTimein classTimeZone - Returns:
- true, если эта часовая зона использует летнее время; false в противном случае.
- See Also:
observesDaylightTime
public boolean observesDaylightTime()
useDaylightTime().- Overrides:
-
observesDaylightTimein classTimeZone - Returns:
- true, если эта часовая зона использует летнее время; false в противном случае.
- Since:
- 1.7
- See Also:
inDaylightTime
public boolean inDaylightTime(Date date)
- Specified by:
-
inDaylightTimein classTimeZone - Implementation Requirements:
- Реализация по умолчанию выбрасывает исключение
NullPointerException, еслиdateявляетсяnull - Parameters:
-
date- заданная дата. - Returns:
- true, если летнее время действует в указанную дату; false в противном случае.
- Throws:
-
NullPointerException- Этот метод может выбросить исключениеNullPointerException, еслиdateявляетсяnull
clone
hashCode
equals
hasSameRules
public boolean hasSameRules(TimeZone other)
true, если у этой зоны времени такие же правила и смещение, как у другой зоны.- Overrides:
-
hasSameRulesв классеTimeZone - Параметры:
-
other- объект TimeZone для сравнения - Возвращает:
-
true, если заданная зона — SimpleTimeZone и имеет такие же правила и смещение, что и текущая - Since:
- 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/SimpleTimeZone.html