Spec-Zone.ru › OpenJDK 21

Класс 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" означают, соответственно, на 10 часов и 10 минут раньше 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" может относиться к американскому "Central Standard Time" и китайскому "China Standard Time"), и платформа Java может распознать только один из них.
С:
1.1
См. также:
  • Calendar
  • GregorianCalendar
  • SimpleTimeZone
  • Сериализованная форма

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

Модификатор и тип Поле Описание
static final int LONG
Спецификатор стиля для getDisplayName(), указывающий полное имя, например, "Pacific Standard Time".
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".
С момента:
1.2
См. также:
  • LONG
  • Значения константных полей

LONG

public static final int LONG
Спецификатор стиля для getDisplayName(), указывающий полное имя, например, "Pacific Standard Time".
С момента:
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 для января.
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, метод возвращает значение сырого смещения текущей даты. Например, в Гонолулу сырое смещение менялось с 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()
Возвращает длинное стандартное имя этого часового пояса, подходящее для представления пользователю в локале по умолчанию.

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

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

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

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

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(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 (ноль).

Если подкласс реализации 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 - идентификатор часового пояса, либо сокращение, такое как "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 устанавливается в идентификатор при возвращении.

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

setDefault

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

hasSameRules

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

clone

public Object clone()
Создаёт копию этого TimeZone.
Overrides:
clone в классе Object
Returns:
клонированный экземпляр TimeZone
See Also:
  • Cloneable

© 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

Spec-Zone.ru

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