Класс 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
- С момента:
- 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 для января). -
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- Год начала летнего времени.
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 до 11. Например, 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в классе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 для января. -
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()
- Overrides:
-
getDSTSavingsв классеTimeZone - Returns:
- количество миллисекунд, на которое время смещается относительно стандартного времени, когда действуют правила летнего времени, или 0 (ноль), если в этом часовом поясе не используется летнее время.
- Since:
- 1.2
- See Also:
useDaylightTime
public boolean useDaylightTime()
- Specified by:
-
useDaylightTimeв классеTimeZone - Returns:
- true, если этот часовой пояс использует летнее время; иначе — false.
- See Also:
observesDaylightTime
public boolean observesDaylightTime()
useDaylightTime().- Overrides:
-
observesDaylightTimeв классеTimeZone - Returns:
-
trueесли этот часовой пояс использует летнее время;falseв противном случае. - Since:
- 1.7
- See Also:
inDaylightTime
public boolean inDaylightTime(Date date)
- Specified by:
-
inDaylightTimeв классеTimeZone - Parameters:
-
date- заданная дата. - Returns:
- true, если летнее время действует в указанную дату; иначе — false.
clone
public Object clone()
- Overrides:
-
cloneв классеTimeZone - Returns:
- клон этого экземпляра.
- See Also:
hashCode
public int hashCode()
- Overrides:
-
hashCodeв классеObject - Returns:
- код хэша для этого объекта
- See Also:
equals
public boolean equals(Object obj)
- Overrides:
-
equalsв классеObject - Parameters:
-
obj- объект часового пояса для сравнения. - Returns:
- True, если заданный объект часового пояса такой же, как этот объект часового пояса; иначе — false.
- See Also:
hasSameRules
public boolean hasSameRules(TimeZone other)
- Overrides:
-
hasSameRulesв классеTimeZone - Parameters:
-
other- объект часового пояса для сравнения - Returns:
-
trueесли заданный часовой пояс является SimpleTimeZone и имеет такие же правила и смещение, как и этот - Since:
- 1.2
toString
public String toString()
- Overrides:
-
toStringв классеObject - Returns:
- строковое представление этого часового пояса.
© 1993, 2021, 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/17/docs/api/java.base/java/util/SimpleTimeZone.html