Spec-Zone.ru › OpenJDK 24

Класс TimeZone

java.lang.Object
java.util.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. Синтаксис пользовательского идентификатора часового пояса:
 CustomID:
         GMT Sign Hours : Minutes : Seconds
         GMT Sign Hours : Minutes
         GMT Sign Hours Minutes
         GMT Sign Hours
 Sign: one of
         + -
 Hours:
         Digit
         Digit Digit
 Minutes:
         Digit Digit
 Seconds:
         Digit Digit
 Digit: one of
         0 1 2 3 4 5 6 7 8 9
 
Hours должно быть в диапазоне от 0 до 23, а Minutes/Seconds — от 00 до 59. Например, "GMT+10" и "GMT+0010" означают соответственно на 10 часов и 10 минут вперёд от GMT.

Формат независим от локали, и цифры должны быть взяты из блока Basic Latin стандарта Unicode. С пользовательским идентификатором часового пояса нельзя указать график переходов летнего времени. Если указанная строка не соответствует синтаксису, используется "GMT".

При создании TimeZone указанный пользовательский идентификатор часового пояса нормализуется в следующем формате:

 NormalizedCustomID:
         GMT Sign TwoDigitHours : Minutes [ColonSeconds]
 Sign: one of
         + -
 TwoDigitHours:
         Digit Digit
 Minutes:
         Digit Digit
 ColonSeconds:
         : Digit Digit
 Digit: one of
         0 1 2 3 4 5 6 7 8 9
 
Например, TimeZone.getTimeZone("GMT-8").getID() возвращает "GMT-08:00". Часть ColonSeconds появляется только если значение секунд не равно нулю.

Идентификаторы часовых поясов из трёх букв

Для совместимости с JDK 1.1.x поддерживаются и некоторые другие идентификаторы часовых поясов из трёх букв (например, "PST", "CTT", "AST"). Однако их использование устарело, так как одно и то же сокращение часто используется для нескольких часовых поясов (например, "CST" может обозначать как «Центральное стандартное время» США, так и «Стандартное время Китая»), и платформа Java может распознать только один из них. Полный список устаревших идентификаторов часовых поясов из трёх букв и их соответствия можно посмотреть по адресу ZoneId.SHORT_IDS.
С момента:
1.1
См. также:
  • Calendar
  • GregorianCalendar
  • SimpleTimeZone
  • Сериализованная форма

Краткое описание полей

Модификатор и тип Поле Описание
static final int LONG
Спецификатор стиля для getDisplayName(), указывающий полное имя, например, «Тихоокеанское стандартное время».
static final int SHORT
Спецификатор стиля для getDisplayName(), указывающий краткое имя, например, «PST».

Краткое описание конструкторов

Конструктор Описание
TimeZone()
Единственный конструктор.

Краткое описание методов

Модификатор и тип Метод Описание
Object clone()
Создаёт копию этого TimeZone.
static String[] getAvailableIDs()
Получает все доступные поддерживаемые идентификаторы.
static String[] getAvailableIDs(int rawOffset)
Получает доступные идентификаторы в соответствии с заданным смещением часового пояса в миллисекундах.
static TimeZone getDefault()
Получает стандартный TimeZone виртуальной машины Java.
final String getDisplayName()
Возвращает длинное стандартное имя этого TimeZone, подходящее для отображения пользователю в стандартной локали.
final String getDisplayName(boolean daylight, int style)
Возвращает имя в заданной style этого TimeZone, подходящее для отображения пользователю в стандартной локали.
String getDisplayName(boolean daylight, int style, Locale locale)
Возвращает имя в заданной style этого TimeZone, подходящее для отображения пользователю в заданной locale.
final String getDisplayName(Locale locale)
Возвращает длинное стандартное имя этого TimeZone, подходящее для отображения пользователю в заданной locale.
int getDSTSavings()
Возвращает количество времени, которое нужно добавить к местному стандартному времени, чтобы получить местное время по часам.
String getID()
Получает идентификатор этого часового пояса.
abstract int getOffset(int era, int year, int month, int day, int dayOfWeek, int milliseconds)
Получает смещение часового пояса для текущей даты, модифицированное в случае летнего времени.
int getOffset(long date)
Возвращает смещение этого часового пояса от UTC в указанную дату.
abstract int getRawOffset()
Возвращает количество времени в миллисекундах, которое нужно добавить к UTC, чтобы получить стандартное время в этом часовом поясе.
static TimeZone getTimeZone(String ID)
Получает TimeZone для данного идентификатора.
static TimeZone getTimeZone(ZoneId zoneId)
Получает TimeZone для данного zoneId.
boolean hasSameRules(TimeZone other)
Возвращает true, если этот пояс имеет те же правила и смещение, что и другой пояс.
abstract boolean inDaylightTime(Date date)
Определяет, является ли заданный date летним временем в данном часовом поясе.
boolean observesDaylightTime()
Возвращает true, если этот TimeZone в настоящее время в режиме летнего времени, или если переход от стандартного времени к летнему времени произойдёт в будущем.
static void setDefault(TimeZone zone)
Устанавливает TimeZone, который возвращается методом getDefault.
void setID(String ID)
Устанавливает идентификатор часового пояса.
abstract void setRawOffset(int offsetMillis)
Устанавливает базовое смещение часового пояса по отношению к GMT.
ZoneId toZoneId()
Преобразует этот объект TimeZone в ZoneId.
abstract boolean useDaylightTime()
Определяет, использует ли этот TimeZone летнее время.

Методы, объявленные в классе java.lang.Object

equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

SHORT

public static final int SHORT
Спецификатор стиля для getDisplayName(), указывающий короткое имя, например, "PST".
Since:
1.2
См. также:
  • LONG
  • Значения константных полей

LONG

public static final int LONG
Спецификатор стиля для getDisplayName(), указывающий длинное имя, например, "Pacific Standard Time".
Since:
1.2
См. также:
  • SHORT
  • Значения константных полей

Подробное описание конструкторов

TimeZone

public TimeZone()
Единственный конструктор. (Для вызова подклассами конструкторов, обычно неявного.)

Подробное описание методов

getOffset

public abstract int getOffset(int era, int year, int month, int day, int dayOfWeek, int milliseconds)
Получает смещение часового пояса для текущей даты, изменённое в случае летнего времени. Это смещение, которое нужно прибавить к UTC, чтобы получить местное время.

Этот метод возвращает исторически корректное смещение, если реализующий подкласс TimeZone поддерживает исторический график летнего времени и изменения смещений GMT.

Параметры:
era - эра заданной даты.
year - год заданной даты.
month - месяц заданной даты. Месяц задаётся нумерацией от 0. Например, 0 для января.
day - день месяца заданной даты.
dayOfWeek - день недели заданной даты.
milliseconds - миллисекунды в дне в стандартном местном времени.
Возвращает:
смещение в миллисекундах, которое нужно добавить к GMT, чтобы получить местное время.
См. также:
  • Calendar.ZONE_OFFSET
  • Calendar.DST_OFFSET

getOffset

public int getOffset(long date)
Возвращает смещение этого часового пояса от UTC в указанную дату. Если в указанную дату действует летнее время, значение смещения корректируется с учётом летнего времени.

Этот метод возвращает исторически корректное значение смещения, если реализующий подкласс TimeZone поддерживает исторический график летнего времени и изменения смещений GMT.

Параметры:
date - дата, представленная в миллисекундах с момента 1 января 1970 года 00:00:00 GMT
Возвращает:
величина времени в миллисекундах для добавления к UTC, чтобы получить местное время.
Since:
1.4
См. также:
  • Calendar.ZONE_OFFSET
  • Calendar.DST_OFFSET

setRawOffset

public abstract void setRawOffset(int offsetMillis)
Устанавливает базовое смещение часового пояса относительно GMT. Это смещение, которое нужно добавить к UTC, чтобы получить местное время.

Если реализующий подкласс TimeZone поддерживает исторические изменения смещения GMT, указанное смещение GMT устанавливается как последнее известное смещение GMT, а разность с последним известным значением смещения GMT используется для корректировки всех исторических значений смещения GMT.

Параметры:
offsetMillis - заданное базовое смещение часового пояса относительно GMT.

getRawOffset

public abstract int getRawOffset()
Возвращает количество времени в миллисекундах для добавления к UTC, чтобы получить стандартное время в этом часовом поясе. Поскольку это значение не зависит от летнего времени, оно называется сырым смещением.

Если реализующий подкласс TimeZone поддерживает исторические изменения смещения GMT, метод возвращает значение сырого смещения текущей даты. Например, в Гонолулу сырое смещение изменилось с GMT-10:30 на GMT-10:00 в 1947 году, и этот метод всегда возвращает -36000000 миллисекунд (т.е., -10 часов).

Возвращает:
количество времени сырого смещения в миллисекундах для добавления к UTC.
См. также:
  • Calendar.ZONE_OFFSET

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(boolean, int, Locale)
  • Locale.getDefault(Locale.Category)
  • Locale.Category

getDisplayName

public final String getDisplayName(Locale locale)
Возвращает длинное имя стандартного времени этого TimeZone, подходящее для отображения пользователю в указанном locale.

Этот метод эквивалентен:

getDisplayName(false, LONG, locale);
Параметры:
locale - локаль, в которой необходимо получить имя для отображения.
Возвращает:
человекопонятное имя этого часового пояса в заданной локали.
Исключения:
NullPointerException - если locale имеет значение null.
Since:
1.2
См. также:
  • getDisplayName(boolean, int, Locale)

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(boolean, int, Locale)
  • Locale.getDefault(Locale.Category)
  • Locale.Category
  • DateFormatSymbols.getZoneStrings()

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
См. также:
  • DateFormatSymbols.getZoneStrings()

getDSTSavings

public int getDSTSavings()
Возвращает величину времени, которую необходимо добавить к местному стандартному времени, чтобы получить местное время по часам.

Базовая реализация возвращает 3600000 миллисекунд (т.е. один час), если вызов useDaylightTime() возвращает true. В противном случае возвращается 0 (ноль).

Если реализация подкласса часового пояса поддерживает изменения расписания летнего времени в прошлом и будущем, этот метод возвращает величину сбережения времени по последнему известному правилу летнего времени, что может быть прогнозом на будущее.

Если требуется величина сбережения времени на конкретную отметку времени, создайте объект Calendar с этим TimeZone и отметкой времени и вызовите Calendar.get(Calendar.DST_OFFSET).

Возвращаемое значение:
величина сбережения времени в миллисекундах
С:
1.4
См. также:
  • inDaylightTime(Date)
  • getOffset(long)
  • getOffset(int,int,int,int,int,int)
  • Calendar.ZONE_OFFSET

useDaylightTime

public abstract boolean useDaylightTime()
Определяет, использует ли этот TimeZone летнее время.

Если реализация подкласса часового пояса поддерживает изменения расписания летнего времени в прошлом и будущем, этот метод ссылается на последнее известное правило летнего времени, которое может быть прогнозом на будущее, и может не совпадать с текущим правилом. Рассмотрите вызов observesDaylightTime(), если необходимо также учитывать текущее правило.

Возвращаемое значение:
true, если этот TimeZone использует летнее время, false в противном случае.
См. также:
  • inDaylightTime(Date)
  • Calendar.DST_OFFSET

observesDaylightTime

public boolean observesDaylightTime()
Возвращает true, если этот TimeZone в настоящее время использует летнее время или произойдет переход со стандартного времени на летнее время в будущем.

Базовая реализация возвращает true, если useDaylightTime() или inDaylightTime(new Date()) возвращают true.

Возвращаемое значение:
true, если этот TimeZone в настоящее время использует летнее время или произойдет переход со стандартного времени на летнее время в будущем; false в противном случае.
С:
1.7
См. также:
  • useDaylightTime()
  • inDaylightTime(Date)
  • Calendar.DST_OFFSET

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, но отличаются по поведению летнего времени.
См. также:
  • getRawOffset()

getAvailableIDs

public static String[] getAvailableIDs()
Возвращает все поддерживаемые доступные идентификаторы.
Возвращаемое значение:
массив идентификаторов.

getDefault

public static TimeZone getDefault()
Возвращает по умолчанию TimeZone виртуальной машины Java. Если кэшированный по умолчанию TimeZone доступен, возвращается его копия. В противном случае метод выполняет следующие шаги для определения часового пояса по умолчанию.
  • Использует значение свойства user.timezone в качестве идентификатора часового пояса по умолчанию, если оно доступно.
  • Определяет идентификатор часового пояса платформы. Источник соответствия часового пояса платформы и его идентификатора может отличаться в различных реализациях.
  • Использует GMT в качестве последней попытки, если заданный или обнаруженный идентификатор часового пояса неизвестен.

Созданный по умолчанию TimeZone с заданным идентификатором кэшируется и возвращается его копия. Значение свойства user.timezone устанавливается в возвращаемый идентификатор.

Возвращаемое значение:
по умолчанию TimeZone
См. также:
  • setDefault(TimeZone)

Установить значение по умолчанию

public static void setDefault(TimeZone zone)
Устанавливает значение по умолчанию, которое возвращается методом getDefault. Значение по умолчанию кэшируется. Если zone равно null, кэшированное значение по умолчанию TimeZone сбрасывается. Данный метод не изменяет свойство user.timezone.
Параметры:
zone - новое значение по умолчанию TimeZone, или null
См. также:
  • getDefault()

hasSameRules

public boolean hasSameRules(TimeZone other)
Возвращает true, если у данной временной зоны одинаковые правила и смещение с другой зоной. То есть, если эта зона отличается только по ID, если вообще. Возвращает false, если другая зона равна null.
Параметры:
other - объект временной зоны для сравнения
Возвращает:
true, если другая зона не null и такая же, как текущая, за исключением ID
С момента:
1.2

clone

public Object clone()
Создает копию данной временной зоны.
Переопределяет:
clone в классе Object
Возвращает:
копию данной временной зоны
См. также:
  • Cloneable

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API