Класс 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. Синтаксис пользовательского идентификатора часового пояса: Hours должно быть в диапазоне от 0 до 23, а Minutes/Seconds — от 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
Формат независим от локали, и цифры должны быть взяты из блока Basic Latin стандарта 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" может обозначать как «Центральное стандартное время» США, так и «Стандартное время Китая»), и платформа Java может распознать только один из них. Полный список устаревших идентификаторов часовых поясов из трёх букв и их соответствия можно посмотреть по адресуZoneId.SHORT_IDS.- С момента:
- 1.1
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
LONG |
Спецификатор стиля для getDisplayName(), указывающий полное имя, например, «Тихоокеанское стандартное время». |
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".- Since:
- 1.2
- См. также:
LONG
public static final int LONG
getDisplayName(), указывающий длинное имя, например, "Pacific Standard Time".- Since:
- 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. Например, 0 для января. -
day- день месяца заданной даты. -
dayOfWeek- день недели заданной даты. -
milliseconds- миллисекунды в дне в стандартном местном времени. - Возвращает:
- смещение в миллисекундах, которое нужно добавить к GMT, чтобы получить местное время.
- См. также:
getOffset
public int getOffset(long date)
Этот метод возвращает исторически корректное значение смещения, если реализующий подкласс TimeZone поддерживает исторический график летнего времени и изменения смещений GMT.
- Параметры:
-
date- дата, представленная в миллисекундах с момента 1 января 1970 года 00:00:00 GMT - Возвращает:
- величина времени в миллисекундах для добавления к UTC, чтобы получить местное время.
- Since:
- 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()
TimeZone, подходящее для отображения пользователю в локале по умолчанию. Этот метод эквивалентен:
getDisplayName(false,LONG, Locale.getDefault(Locale.Category.DISPLAY));
- Возвращает:
- человекопонятное имя этого часового пояса в локали по умолчанию.
- Since:
- 1.2
- См. также:
getDisplayName
public final String getDisplayName(Locale locale)
TimeZone, подходящее для отображения пользователю в указанном locale. Этот метод эквивалентен:
getDisplayName(false,LONG, locale);
- Параметры:
-
locale- локаль, в которой необходимо получить имя для отображения. - Возвращает:
- человекопонятное имя этого часового пояса в заданной локали.
- Исключения:
-
NullPointerException- еслиlocaleимеет значениеnull. - Since:
- 1.2
- См. также:
getDisplayName
public final String getDisplayName(boolean daylight, int style)
style этого TimeZone, подходящее для отображения пользователю в локали по умолчанию. Если указанное daylight равно true, возвращается имя летнего времени (даже если этот TimeZone не использует летнее время). В противном случае возвращается имя стандартного времени. Этот метод эквивалентен:
getDisplayName(daylight, style, Locale.getDefault(Locale.Category.DISPLAY));
- Параметры:
-
daylight-true, определяющее имя летнего времени, илиfalse, определяющее имя стандартного времени -
style- либоLONG, либоSHORT - Возвращает:
- человекопонятное имя этого часового пояса в локали по умолчанию.
- Исключения:
-
IllegalArgumentException- еслиstyleявляется недопустимым. - Since:
- 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 (ноль).
Если реализация подкласса часового пояса поддерживает изменения расписания летнего времени в прошлом и будущем, этот метод возвращает величину сбережения времени по последнему известному правилу летнего времени, что может быть прогнозом на будущее.
Если требуется величина сбережения времени на конкретную отметку времени, создайте объект Calendar с этим
TimeZone и отметкой времени и вызовите Calendar.get(Calendar.DST_OFFSET).
- Возвращаемое значение:
- величина сбережения времени в миллисекундах
- С:
- 1.4
- См. также:
useDaylightTime
public abstract boolean useDaylightTime()
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- идентификаторTimeZone, например, аббревиатура "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 устанавливается в возвращаемый идентификатор.
- Возвращаемое значение:
- по умолчанию
TimeZone - См. также:
Установить значение по умолчанию
public static void setDefault(TimeZone zone)
getDefault. Значение по умолчанию кэшируется. Если zone равно null, кэшированное значение по умолчанию TimeZone сбрасывается. Данный метод не изменяет свойство user.timezone.- Параметры:
-
zone- новое значение по умолчаниюTimeZone, или null - См. также:
hasSameRules
public boolean hasSameRules(TimeZone other)
- Параметры:
-
other- объект временной зоны для сравнения - Возвращает:
- true, если другая зона не null и такая же, как текущая, за исключением ID
- С момента:
- 1.2
clone
© 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/TimeZone.html