Класс TimeZone
- Все реализованные интерфейсы:
-
Serializable,Cloneable
- Прямые известные подклассы:
SimpleTimeZone
public abstract class TimeZone extends Object implements Serializable, Cloneable
TimeZone представляет смещение часового пояса и также определяет летнее время. Обычно вы получаете TimeZone с помощью getDefault, который создает TimeZone на основе часового пояса, в котором выполняется программа. Например, для программы, выполняемой в Японии, getDefault создает объект TimeZone на основе японского стандартного времени.
Вы также можете получить TimeZone с помощью getTimeZone вместе с идентификатором часового пояса. Например, идентификатор часового пояса для часового пояса Тихоокеанского побережья США — "America/Los_Angeles". Таким образом, вы можете получить объект TimeZone Тихоокеанского побережья США с помощью:
Вы можете использовать методTimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");
getAvailableIDs для перебора всех поддерживаемых идентификаторов часовых поясов. Затем вы можете выбрать поддерживаемый идентификатор для получения TimeZone. Если нужный часовой пояс не представлен одним из поддерживаемых идентификаторов, можно указать пользовательский идентификатор часового пояса для создания объекта TimeZone. Синтаксис пользовательского идентификатора часового пояса: Часы должны быть от 0 до 23, а Минуты/Секунды — от 00 до 59. Например, "GMT+10" и "GMT+0010" означают, соответственно, на 10 часов и 10 минут раньше GMT.CustomID:GMTSign Hours:Minutes:SecondsGMTSign Hours:MinutesGMTSign Hours MinutesGMTSign Hours Sign: one of+ -Hours: Digit Digit Digit Minutes: Digit Digit Seconds: Digit Digit Digit: one of0 1 2 3 4 5 6 7 8 9
Формат не зависит от языка и цифры должны быть взяты из базового латинского блока стандарта Unicode. С помощью пользовательского идентификатора часового пояса нельзя указать расписание перехода на летнее время. Если указанная строка не соответствует синтаксису, используется "GMT".
При создании TimeZone, указанный пользовательский идентификатор часового пояса нормализуется в следующем формате:
Например, TimeZone.getTimeZone("GMT-8").getID() возвращает "GMT-08:00". Часть ColonSeconds появляется только если значение секунд не равно нулю.NormalizedCustomID:GMTSign TwoDigitHours:Minutes [ColonSeconds] Sign: one of+ -TwoDigitHours: Digit Digit Minutes: Digit Digit ColonSeconds::Digit Digit Digit: one of0 1 2 3 4 5 6 7 8 9
Идентификаторы часовых поясов из трёх букв
Для совместимости с JDK 1.1.x поддерживаются и некоторые другие идентификаторы часовых поясов из трёх букв (например, "PST", "CTT", "AST"). Однако их использование устарело, потому что одно и то же сокращение часто используется для нескольких часовых поясов (например, "CST" может относиться к американскому "Central Standard Time" и китайскому "China Standard Time"), и платформа Java может распознать только один из них.- С:
- 1.1
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
LONG |
Спецификатор стиля для getDisplayName(), указывающий полное имя, например, "Pacific Standard Time". |
static final int |
SHORT |
Спецификатор стиля для getDisplayName(), указывающий короткое имя, например, "PST". |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
TimeZone() |
Единственный конструктор. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Создаёт копию этого TimeZone. |
static String[] |
getAvailableIDs() |
Получает все доступные поддерживаемые идентификаторы. |
static String[] |
getAvailableIDs |
Получает доступные идентификаторы в соответствии с заданным смещением часового пояса в миллисекундах. |
static TimeZone |
getDefault() |
Получает по умолчанию TimeZone виртуальной машины Java. |
final String |
getDisplayName() |
Возвращает длинное стандартное имя этого TimeZone, подходящее для отображения пользователю в локальном формате по умолчанию. |
final String |
getDisplayName |
Возвращает имя в указанном style этого TimeZone, подходящее для отображения пользователю в локальном формате по умолчанию. |
String |
getDisplayName |
Возвращает имя в указанном style этого TimeZone, подходящее для отображения пользователю в указанном
locale. |
final String |
getDisplayName |
Возвращает длинное стандартное имя этого TimeZone, подходящее для отображения пользователю в указанном locale. |
int |
getDSTSavings() |
Возвращает величину времени, добавляемую к локальному стандартному времени, для получения локального времени по часам. |
String |
getID() |
Получает идентификатор этого часового пояса. |
abstract int |
getOffset |
Получает смещение часового пояса для текущей даты, изменённое в случае летнего времени. |
int |
getOffset |
Возвращает смещение этого часового пояса от UTC в указанную дату. |
abstract int |
getRawOffset() |
Возвращает величину времени в миллисекундах, добавляемую к UTC, чтобы получить стандартное время в этом часовом поясе. |
static TimeZone |
getTimeZone |
Получает TimeZone для данного идентификатора. |
static TimeZone |
getTimeZone |
Получает TimeZone для данного zoneId. |
boolean |
hasSameRules |
Возвращает true, если этот пояс имеет те же правила и смещение, что и другой пояс. |
abstract boolean |
inDaylightTime |
Запрашивает, находится ли данное date в летнем времени в этом часовом поясе. |
boolean |
observesDaylightTime() |
Возвращает true, если этот TimeZone в настоящее время в летнем времени, или если переход от стандартного времени к летнему времени происходит в будущем. |
static void |
setDefault |
Устанавливает TimeZone, возвращаемое методом getDefault. |
void |
setID |
Устанавливает идентификатор часового пояса. |
abstract void |
setRawOffset |
Устанавливает базовое смещение часового пояса к GMT. |
ZoneId |
toZoneId() |
Преобразует этот объект TimeZone в ZoneId. |
abstract boolean |
useDaylightTime() |
Запрашивает, использует ли этот TimeZone летнее время. |
Подробное описание полей
SHORT
public static final int SHORT
getDisplayName(), указывающий короткое имя, например, "PST".- С момента:
- 1.2
- См. также:
LONG
public static final int LONG
getDisplayName(), указывающий полное имя, например, "Pacific Standard Time".- С момента:
- 1.2
- См. также:
Подробное описание конструкторов
TimeZone
public TimeZone()
Подробное описание методов
getOffset
public abstract int getOffset(int era, int year, int month, int day, int dayOfWeek, int milliseconds)
Этот метод возвращает исторически корректное смещение, если подкласс реализации TimeZone поддерживает исторический график летнего времени и изменения смещения GMT.
- Параметры:
-
era- эра заданной даты. -
year- год в заданной дате. -
month- месяц в заданной дате. Месяц нулевой индексации. Например, 0 для января. -
day- день месяца в заданной дате. -
dayOfWeek- день недели в заданной дате. -
milliseconds- миллисекунды в дне в стандартном местном времени. - Возвращает:
- смещение в миллисекундах, которое нужно добавить к GMT, чтобы получить местное время.
- См. также:
getOffset
public int getOffset(long date)
Этот метод возвращает исторически корректное смещение, если подкласс реализации TimeZone поддерживает исторический график летнего времени и изменения смещения GMT.
- Параметры:
-
date- дата, представленная в миллисекундах с 1 января 1970 года 00:00:00 GMT - Возвращает:
- величина времени в миллисекундах, которую нужно добавить к UTC, чтобы получить местное время.
- С момента:
- 1.4
- См. также:
setRawOffset
public abstract void setRawOffset(int offsetMillis)
Если подкласс реализации TimeZone поддерживает исторические изменения смещения GMT, указанное смещение GMT устанавливается как последнее смещение GMT, а разница с известным последним значением смещения GMT используется для корректировки всех исторических значений смещения GMT.
- Параметры:
-
offsetMillis- заданное базовое смещение часового пояса от GMT.
getRawOffset
public abstract int getRawOffset()
Если подкласс реализации TimeZone поддерживает исторические изменения смещения GMT, метод возвращает значение сырого смещения текущей даты. Например, в Гонолулу сырое смещение менялось с GMT-10:30 на GMT-10:00 в 1947 году, и этот метод всегда возвращает -36000000 миллисекунд (т. е. -10 часов).
- Возвращает:
- величина сырого смещения во времени в миллисекундах, которую нужно добавить к UTC.
- См. также:
getID
public String getID()
- Возвращает:
- идентификатор этого часового пояса.
setID
public void setID(String ID)
- Требования к реализации:
- Стандартная реализация выбрасывает
NullPointerException, еслиIDявляетсяnull. - Параметры:
-
ID- новый идентификатор часового пояса. - Исключения:
-
NullPointerException- Этот метод может выброситьNullPointerException, еслиIDявляетсяnull
getDisplayName
public final String getDisplayName()
Этот метод эквивалентен:
getDisplayName(false,LONG, Locale.getDefault(Locale.Category.DISPLAY));
- Возвращает:
- человекочитаемое имя этого часового пояса в локале по умолчанию.
- С момента:
- 1.2
- См. также:
getDisplayName
public final String getDisplayName(Locale locale)
Этот метод эквивалентен:
getDisplayName(false,LONG, locale);
- Параметры:
-
locale- локали, в которой нужно предоставить имя отображения. - Возвращает:
- человекочитаемое имя этого часового пояса в данном локале.
- Исключения:
-
NullPointerException- еслиlocaleимеет значениеnull. - С момента:
- 1.2
- См. также:
getDisplayName
public final String getDisplayName(boolean daylight, int style)
style этого часового пояса, подходящее для представления пользователю в локале по умолчанию. Если указанное daylight равно true, возвращается имя летнего времени (даже если этот часовой пояс не соблюдает летнее время). В противном случае возвращается имя стандартного времени. Этот метод эквивалентен:
getDisplayName(daylight, style, Locale.getDefault(Locale.Category.DISPLAY));
- Параметры:
-
daylight-true, указывающее имя летнего времени, илиfalse, указывающее имя стандартного времени -
style- либоLONG, либоSHORT - Возвращает:
- человекочитаемое имя этого часового пояса в локале по умолчанию.
- Исключения:
-
IllegalArgumentException- еслиstyleявляется недопустимым. - С момента:
- 1.2
- См. также:
getDisplayName
public String getDisplayName(boolean daylight, int style, Locale locale)
style этого TimeZone, пригодное для отображения пользователю в указанном
locale. Если указанный daylight равен true, возвращается имя летнего времени (даже если это TimeZone не использует летнее время). В противном случае возвращается имя стандартного времени. При поиске имени часового пояса используется путь поиска по умолчанию Locale ResourceBundle, полученный из указанного locale. (Поиск по Locale не выполняется.) Если имя часового пояса найдено в любом Locale пути поиска, включая Locale.ROOT, то возвращается это имя. В противном случае возвращается строка в формате нормализованного пользовательского идентификатора.
- Требования к реализации:
- Реализация по умолчанию выбрасывает исключение
IllegalArgumentException, еслиstyleнекорректно, или исключениеNullPointerException, еслиIDявляетсяnull. - Параметры:
-
daylight-trueуказывающее имя летнего времени, илиfalseуказывающее имя стандартного времени -
style- либоLONG, либоSHORT -
locale- язык, на котором требуется отобразить имя. - Возвращает:
- читаемое человеком имя этого часового пояса в заданном языке.
- Исключения:
-
IllegalArgumentException- Этот метод может выбросить исключениеIllegalArgumentException, еслиstyleнекорректно. -
NullPointerException- Этот метод может выбросить исключениеNullPointerException, еслиIDявляетсяnull - С:
- 1.2
- См. также:
getDSTSavings
public int getDSTSavings()
Реализация по умолчанию возвращает 3600000 миллисекунд (т.е. один час), если вызов useDaylightTime() возвращает true. В противном случае возвращается 0 (ноль).
Если подкласс реализации TimeZone поддерживает исторические и будущие изменения расписания летнего времени, этот метод возвращает величину времени летнего времени последнего известного правила летнего времени, которое может быть будущим прогнозом.
Если требуется величина времени летнего времени в определённую дату, создайте объект Calendar с этим
TimeZone и указанной датой, и вызовите Calendar.get(Calendar.DST_OFFSET).
- Возвращает:
- величину времени летнего времени в миллисекундах
- С:
- 1.4
- См. также:
useDaylightTime
public abstract boolean useDaylightTime()
TimeZone летнее время. Если подкласс реализации TimeZone поддерживает исторические и будущие изменения расписания летнего времени, этот метод ссылается на последнее известное правило летнего времени, которое может быть будущим прогнозом, и может не совпадать с текущим правилом. Рассмотрите вызов observesDaylightTime(), если должно учитываться также текущее правило.
- Возвращает:
-
trueесли этоTimeZoneиспользует летнее время,false, в противном случае. - См. также:
observesDaylightTime
public boolean observesDaylightTime()
true если это TimeZone в настоящее время использует летнее время или если переход от стандартного времени к летнему времени происходит в будущем. Реализация по умолчанию возвращает true, если useDaylightTime() или inDaylightTime(new Date()) возвращает true.
- Возвращает:
-
trueесли этоTimeZoneв настоящее время использует летнее время или если переход от стандартного времени к летнему времени происходит в будущем;falseв противном случае. - С:
- 1.7
- См. также:
inDaylightTime
public abstract boolean inDaylightTime(Date date)
date в часовом поясе летнего времени в этом часовом поясе.- Параметры:
-
date- заданная дата. - Возвращает:
-
trueесли указанная дата находится в часовом поясе летнего времени,false, в противном случае. - Исключения:
-
NullPointerException- Этот метод может выбросить исключениеNullPointerException, еслиdateявляетсяnull
getTimeZone
public static TimeZone getTimeZone(String ID)
TimeZone для данного идентификатора.- Параметры:
-
ID- идентификатор часового пояса, либо сокращение, такое как "PST", полное имя, такое как "America/Los_Angeles", или пользовательский идентификатор, такой как "GMT-8:00". Обратите внимание, что поддержка сокращений предназначена только для совместимости с JDK 1.1.x, и следует использовать полные имена. - Возвращает:
- указанный
TimeZone, или часовой пояс GMT, если данный идентификатор не может быть распознан. - Исключения:
-
NullPointerException- еслиIDявляетсяnull
getTimeZone
public static TimeZone getTimeZone(ZoneId zoneId)
TimeZone для данного zoneId.- Параметры:
-
zoneId-ZoneId, из которого извлекается идентификатор часового пояса - Возвращает:
- указанный
TimeZone, или часовой пояс GMT, если данный идентификатор не может быть распознан. - Исключения:
-
NullPointerException- еслиzoneIdявляетсяnull - С:
- 1.8
toZoneId
public ZoneId toZoneId()
TimeZone в объект ZoneId.- Возвращает:
- объект
ZoneId, представляющий тот же часовой пояс, что и этотTimeZone - С:
- 1.8
getAvailableIDs
public static String[] getAvailableIDs(int rawOffset)
- Параметры:
-
rawOffset- заданное смещение часового пояса от GMT в миллисекундах. - Возвращает:
- массив идентификаторов, для которых часовой пояс имеет указанное смещение от GMT. Например, "America/Phoenix" и "America/Denver" оба имеют GMT-07:00, но отличаются по поведению летнего времени.
- См. также:
getAvailableIDs
public static String[] getAvailableIDs()
- Возвращает:
- массив идентификаторов.
getDefault
public static TimeZone getDefault()
TimeZone виртуальной машины Java. Если кэшированный по умолчанию TimeZone доступен, возвращается его копия. В противном случае метод выполняет следующие шаги для определения часового пояса по умолчанию. - Использует значение свойства
user.timezoneв качестве идентификатора часового пояса по умолчанию, если оно доступно. - Определяет идентификатор платформенного часового пояса. Источник отображения платформенных часовых поясов и сопоставления идентификаторов может отличаться в зависимости от реализации.
- Использует
GMTв качестве последней меры, если заданный или обнаруженный идентификатор часового пояса неизвестен.
Созданный по умолчанию TimeZone из идентификатора кэшируется, и возвращается его копия. Значение свойства user.timezone устанавливается в идентификатор при возвращении.
- Возвращает:
- часовой пояс по умолчанию
- См. также:
setDefault
public static void setDefault(TimeZone zone)
TimeZone, который возвращается методом getDefault. zone кэшируется. Если zone равно null, кэшированный по умолчанию TimeZone очищается. Этот метод не изменяет значение свойства user.timezone.- Параметры:
-
zone- новый часовой пояс по умолчанию, или null - Исключения:
-
SecurityException- если менеджер безопасностиcheckPermissionзапрещаетPropertyPermission("user.timezone", "write") - См. также:
hasSameRules
public boolean hasSameRules(TimeZone other)
- Parameters:
-
other- объектTimeZoneдля сравнения - Returns:
- true, если другой часовой пояс не равен null и такой же, как этот, за исключением, возможно, идентификатора
- Since:
- 1.2
clone
public Object clone()
TimeZone. - Overrides:
-
cloneв классеObject - Returns:
- клонированный экземпляр
TimeZone - See Also:
© 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/TimeZone.html