Spec-Zone.ru › OpenJDK 27

Класс 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" означают соответственно опережение времени GMT на десять часов и на десять часов десять минут.

Формат не зависит от локали, а цифры должны принадлежать базовому латинскому блоку стандарта 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(), обозначающий длинное название, например "Pacific Standard Time".
static final int SHORT
Указывает стиль для getDisplayName(), обозначающий короткое название, например "PST".

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

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

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

Модификатор и тип Метод Описание
static Stream<String> availableIDs()
Возвращает поток поддерживаемых доступных идентификаторов.
static Stream<String> availableIDs(int rawOffset)
Получает доступные идентификаторы в соответствии с заданным смещением часового пояса в миллисекундах.
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)
Возвращает название этого объекта TimeZone в указанном style, подходящее для отображения пользователю в локали по умолчанию.
String getDisplayName(boolean daylight, int style, Locale locale)
Возвращает название этого объекта TimeZone в указанном style, подходящее для отображения пользователю в заданной 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 летнее время.

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

equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удален в будущей версии.
Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени.

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

SHORT

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

LONG

public static final int LONG
Спецификатор стиля для getDisplayName(), указывающий полное название, например «Тихоокеанское стандартное время».
Начиная с:
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, чтобы получить местное время.
Начиная с:
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, метод возвращает значение базового смещения для текущей даты. Например, в Гонолулу базовое смещение в 1947 году изменилось с GMT-10:30 на GMT-10:00, и этот метод всегда возвращает -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));
Возвращает:
понятное человеку название этого часового пояса в локали по умолчанию.
Начиная с:
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.
Начиная с:
1.2
См. также:
  • getDisplayName(boolean, int, Locale)

getDisplayName

public final String getDisplayName(boolean daylight, int style)
Возвращает название этого TimeZone в указанном style, подходящее для отображения пользователю в локали по умолчанию. Если указанный daylight имеет значение true, возвращается название летнего времени (даже если в этом TimeZone не используется летнее время). В противном случае возвращается название стандартного времени.

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

getDisplayName(daylight, style,
               Locale.getDefault(Locale.Category.DISPLAY));
Параметры:
daylight — true для указания названия летнего времени или false для указания названия стандартного времени
style — либо LONG, либо SHORT
Возвращает:
понятное человеку название этого часового пояса в локали по умолчанию.
Выбрасывает:
IllegalArgumentException — если style недопустим.
Начиная с:
1.2
См. также:
  • getDisplayName(boolean, int, Locale)
  • Locale.getDefault(Locale.Category)
  • Locale.Category
  • DateFormatSymbols.getZoneStrings()

getDisplayName

public String getDisplayName(boolean daylight, int style, Locale locale)
Возвращает название этого TimeZone в указанном style, подходящее для отображения пользователю в указанной locale. Если указанный daylight имеет значение true, возвращается название летнего времени (даже если в этом TimeZone не используется летнее время). В противном случае возвращается название стандартного времени.

При поиске названия часового пояса используется путь поиска ResourceBundle по умолчанию для Locale, полученный на основе указанной 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 (ноль).

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

Если требуется узнать величину перехода на летнее время для определенной временной метки, создайте 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 летнее время.

Если базовый подкласс реализации 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)
Возвращает доступные идентификаторы для указанного смещения часового пояса в миллисекундах.
Примечание к API:
Рассмотрите возможность использования availableIDs(int), который возвращает поток доступных идентификаторов часовых поясов с указанным смещением.
Параметры:
rawOffset — указанное смещение часового пояса относительно GMT в миллисекундах.
Возвращает:
массив идентификаторов часовых поясов с указанным смещением относительно GMT. Например, «America/Phoenix» и «America/Denver» имеют смещение GMT-07:00, но отличаются правилами перехода на летнее время.
См. также:
  • getRawOffset()
  • availableIDs(int)

getAvailableIDs

public static String[] getAvailableIDs()
Возвращает массив поддерживаемых доступных идентификаторов.
Примечание к API:
Рассмотрите возможность использования availableIDs(), который возвращает поток доступных идентификаторов часовых поясов.
Возвращает:
массив поддерживаемых доступных идентификаторов
См. также:
  • availableIDs()

availableIDs

public static Stream<String> availableIDs(int rawOffset)
Возвращает доступные идентификаторы для указанного смещения часового пояса в миллисекундах.
Примечание по реализации:
В отличие от getAvailableIDs(int), этот метод не создает копию массива идентификаторов TimeZone.
Параметры:
rawOffset — указанное смещение часового пояса относительно GMT в миллисекундах.
Возвращает:
поток идентификаторов часовых поясов с указанным смещением относительно GMT. Например, «America/Phoenix» и «America/Denver» имеют смещение GMT-07:00, но отличаются правилами перехода на летнее время.
Начиная с:
25
См. также:
  • getRawOffset()
  • getAvailableIDs(int)

availableIDs

public static Stream<String> availableIDs()
Возвращает поток поддерживаемых доступных идентификаторов.
Примечание по реализации:
В отличие от getAvailableIDs(), этот метод не создает копию массива идентификаторов TimeZone.
Возвращает:
поток поддерживаемых доступных идентификаторов
Начиная с:
25
См. также:
  • getAvailableIDs()

getDefault

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

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

Возвращает:
часовой пояс TimeZone
См. также:
  • setDefault(TimeZone)

setDefault

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

hasSameRules

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

clone

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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