Spec-Zone.ru › OpenJDK 25

Класс 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
Часы должны быть в диапазоне от 0 до 23, а Минуты/Секунды — в диапазоне от 00 до 59. Например, "GMT+10" и "GMT+0010" означают соответственно время на десять часов и на десять часов десять минут впереди 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" может означать американское "Central Standard Time" или китайское "China Standard Time"), и платформа 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

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

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 не используется переход на летнее время). В противном случае возвращается название стандартного времени.

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

Если базовый подкласс реализации 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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/TimeZone.html

Spec-Zone.ru

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