Класс 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. - Since:
- 1.1
- See Also:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
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() |
Определяет, использует ли этот часовой пояс летнее время. |
Методы, объявленные в классе java.util.TimeZone
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)
- Parameters:
-
rawOffset- Заданное смещение базовой временной зоны относительно GMT. -
ID- Идентификатор временной зоны, присваиваемый этому объекту. -
startMonth- Месяц начала летнего времени. Месяц – это значение поляMONTH(нумерация с 0, например, 0 для января). -
startDay- День месяца, в который начинается летнее время. Специальные случаи этого параметра см. в описании класса. -
startDayOfWeek- День недели начала летнего времени. Специальные случаи этого параметра см. в описании класса. -
startTime- Время начала летнего времени по местному времени (в миллисекундах в течение дня), в данном случае – местное стандартное время. -
endMonth- Месяц окончания летнего времени. Месяц – это значение поляMONTH(нумерация с 0, например, 9 для октября). -
endDay- День месяца, в который заканчивается летнее время. Специальные случаи этого параметра см. в описании класса. -
endDayOfWeek- День недели окончания летнего времени. Специальные случаи этого параметра см. в описании класса. -
endTime- Время окончания летнего времени по местному времени (в миллисекундах в течение дня), в данном случае – местное летнее время. - Throws:
-
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.- Параметры:
-
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
- См. также:
Подробное описание методов
Установить начальный год летнего времени
public void setStartYear(int year)
- Параметры:
-
year- Начальный год летнего времени.
Установить правило начала летнего времени
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выходят за пределы допустимого диапазона.
Установить правило начала летнего времени
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 для января). -
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(с нулевым индексом. Например, 9 для октября). -
endDay- Число месяца, на которое заканчивается летнее время. Специальные случаи этого параметра описаны в описании класса. -
endDayOfWeek- День недели окончания летнего времени. Специальные случаи этого параметра описаны в описании класса. -
endTime- Время окончания летнего времени по местному времени, (в миллисекундах в течение дня), в этом случае — по местному летнему времени. - Исключения:
-
IllegalArgumentException- если параметрыendMonth,endDay,endDayOfWeek, илиendTimeвыходят за пределы допустимых значений.
УстановитьКонецПравилDST
public void setEndRule(int endMonth, int endDay, int endTime)
setEndRule(endMonth, endDay, 0, endTime)
- Параметры:
-
endMonth- Месяц окончания летнего времени. Месяц - это значение поляMONTH(с нуля. Например, 9 для октября). -
endDay- День месяца, в который заканчивается летнее время. -
endTime- Время окончания летнего времени в локальном часовом поясе (в миллисекундах в течение дня), которое в данном случае является местным летним временем. - Исключения:
-
IllegalArgumentException- параметрыendMonth,endDay, илиendTimeнаходятся вне диапазона - С:
- 1.2
УстановитьКонецПравилDST
public void setEndRule(int endMonth, int endDay, int endDayOfWeek, int endTime, boolean after)
- Параметры:
-
endMonth- Месяц окончания летнего времени. Месяц - это значение поляMONTH(с нуля. Например, 9 для октября). -
endDay- День месяца, в который заканчивается летнее время. -
endDayOfWeek- День недели окончания летнего времени. -
endTime- Время окончания летнего времени в локальном часовом поясе (в миллисекундах в течение дня), которое в данном случае является местным летним временем. -
after- Если true, это правило выбирает первоеendDayOfWeekна или послеendDay. Если false, это правило выбирает последнееendDayOfWeekна или доendDayмесяца. - Исключения:
-
IllegalArgumentException- параметрыendMonth,endDay,endDayOfWeek, илиendTimeнаходятся вне диапазона - С:
- 1.2
getOffset
public int getOffset(long date)
- Overrides:
-
getOffsetв классеTimeZone - Параметры:
-
date- время, для которого требуется определить смещение часового пояса - Возвращает:
- значение, представляющее количество миллисекунд, которое необходимо добавить к UTC для получения местного времени.
- С:
- 1.4
- См. также:
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 до 11 (0 для января). -
day- День месяца указанной даты. -
dayOfWeek- День недели указанной даты. -
millis- Миллисекунды в дне в стандартном местном времени. - Возвращает:
- Миллисекунды, которые нужно добавить к UTC, чтобы получить местное время.
- Исключение:
-
IllegalArgumentException- параметрыera,month,day,dayOfWeek, илиmillisвыходят за пределы допустимого диапазона - См. также:
getRawOffset
public int getRawOffset()
- Определяется:
-
getRawOffsetв классеTimeZone - Возвращает:
- значение смещения по Гринвичу в миллисекундах
- См. также:
setRawOffset
public void setRawOffset(int offsetMillis)
- Определяется:
-
setRawOffsetв классеTimeZone - Параметры:
-
offsetMillis- заданное базовое смещение временной зоны по отношению к Гринвичу. - См. также:
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()
useDaylightTime().- Переопределяет:
-
observesDaylightTimeв классеTimeZone - Возвращает:
- true, если этот часовой пояс использует летнее время; false в противном случае.
- С:
- 1.7
- См. также:
inDaylightTime
public boolean inDaylightTime(Date date)
- Указано в:
-
inDaylightTimeв классеTimeZone - Требования к реализации:
- Основная реализация выбрасывает
NullPointerExceptionеслиdateравноnull - Параметры:
-
date- заданная дата. - Возвращает:
- true, если летнее время действует в заданную дату; false в противном случае.
- Бросает:
-
NullPointerException- Этот метод может броситьNullPointerExceptionеслиdateравноnull
clone
public Object clone()
SimpleTimeZone.- Переопределяет:
-
cloneв классеTimeZone - Возвращает:
- копию этого экземпляра.
- См. также:
hashCode
public int hashCode()
- Overrides:
-
hashCodeв классеObject - Возвращает:
- хэш-код этого объекта
- См. также:
equals
public boolean equals(Object obj)
SimpleTimeZone. - Overrides:
-
equalsв классеObject - Параметры:
-
obj- ОбъектSimpleTimeZone, с которым следует сравнить. - Возвращает:
- True, если заданный объект
objтакой же, как этот объектSimpleTimeZone; иначе — false. - См. также:
hasSameRules
public boolean hasSameRules(TimeZone other)
true, если у данной зоны одинаковые правила и смещение с другой зоной.- Overrides:
-
hasSameRulesв классеTimeZone - Параметры:
-
other- объект TimeZone для сравнения - Возвращает:
-
true, если заданная зона является SimpleTimeZone и имеет те же правила и смещение, что и текущая - Since:
- 1.2
toString
public String toString()
- Overrides:
-
toStringв классеObject - Возвращает:
- строковое представление этой временной зоны.
© 1993, 2023, 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/21/docs/api/java.base/java/util/SimpleTimeZone.html