Spec-Zone.ru › OpenJDK 21

Класс ZoneOffset

java.lang.Object
java.time.ZoneId
java.time.ZoneOffset
Все реализуемые интерфейсы:
Serializable, Comparable<ZoneOffset>, TemporalAccessor, TemporalAdjuster
public final class ZoneOffset extends ZoneId implements TemporalAccessor, TemporalAdjuster, Comparable<ZoneOffset>, Serializable
Смещение часового пояса от Гринвича/UTC, например, +02:00.

Смещение часового пояса — это разница во времени между часовым поясом и Гринвичем/UTC. Обычно это фиксированное количество часов и минут.

Разные части мира имеют разные смещения часовых поясов. Правила, определяющие, как смещения меняются в зависимости от места и времени года, описаны в классе ZoneId.

Например, Париж на один час опережает Гринвич/UTC зимой и на два часа летом. Объект ZoneId для Парижа будет ссылаться на два объекта ZoneOffset — объект +01:00 для зимы и объект +02:00 для лета.

В 2008 году смещения часовых поясов по всему миру варьировались от -12:00 до +14:00. Чтобы избежать проблем с расширением этого диапазона, но при этом обеспечить валидацию, диапазон смещений ограничен значениями от -18:00 до 18:00 включительно.

Данный класс предназначен для использования с календарной системой ISO. Поля часов, минут и секунд предполагают действительность для стандартных определений этих полей в системе ISO. Этот класс может использоваться с другими календарными системами, если определения полей времени совпадают с календарной системой ISO.

Экземпляры класса ZoneOffset должны сравниваться с использованием метода equals(java.lang.Object). Реализации могут выбирать кэширование некоторых общих смещений, однако приложения не должны полагаться на такое кэширование.

Это класс значений. Программисты должны рассматривать экземпляры, которые равны, как взаимозаменяемые и не должны использовать их для синхронизации, так как это может привести к непредсказуемому поведению. Например, в будущих версиях синхронизация может быть нарушена. Для сравнений необходимо использовать метод equals.

Требования к реализации:
Этот класс неизменяемый и потокобезопасный.
С:
1.8
См. также:
  • Сериализованная форма

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

Модификатор и тип Поле Описание
static final ZoneOffset MAX
Константа для максимального поддерживаемого смещения.
static final ZoneOffset MIN
Константа для минимального поддерживаемого смещения.
static final ZoneOffset UTC
Смещение часового пояса для UTC, с идентификатором 'Z'.

Поля, объявленные в классе java.time.ZoneId

SHORT_IDS

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

Модификатор и тип Метод Описание
Temporal adjustInto(Temporal temporal)
Настройка указанного временного объекта для того, чтобы он имел то же смещение, что и этот объект.
int compareTo(ZoneOffset other)
Сравнение этого смещения с другим смещением в порядке убывания.
boolean equals(Object obj)
Проверка на равенство этого смещения с другим смещением.
static ZoneOffset from(TemporalAccessor temporal)
Получение экземпляра ZoneOffset из временного объекта.
int get(TemporalField field)
Получение значения указанного поля из этого смещения в виде int.
String getId()
Получение нормализованного идентификатора смещения часового пояса.
long getLong(TemporalField field)
Получение значения указанного поля из этого смещения в виде long.
ZoneRules getRules()
Получение связанных правил часового пояса.
int getTotalSeconds()
Получение общего смещения часового пояса в секундах.
int hashCode()
Хэш-код для этого смещения.
boolean isSupported(TemporalField field)
Проверка поддержки указанного поля.
static ZoneOffset of(String offsetId)
Получение экземпляра ZoneOffset по идентификатору.
static ZoneOffset ofHours(int hours)
Получение экземпляра ZoneOffset по смещению в часах.
static ZoneOffset ofHoursMinutes(int hours, int minutes)
Получение экземпляра ZoneOffset по смещению в часах и минутах.
static ZoneOffset ofHoursMinutesSeconds(int hours, int minutes, int seconds)
Получение экземпляра ZoneOffset по смещению в часах, минутах и секундах.
static ZoneOffset ofTotalSeconds(int totalSeconds)
Получение экземпляра ZoneOffset, указав общее смещение в секундах
<R> R query(TemporalQuery<R> query)
Запрос к этому смещению с использованием указанного запроса.
ValueRange range(TemporalField field)
Получение диапазона допустимых значений для указанного поля.
String toString()
Вывод этого смещения в виде String, используя нормализованный идентификатор.

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

getAvailableZoneIds, getDisplayName, normalized, of, ofOffset, systemDefault

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

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

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

UTC

public static final ZoneOffset UTC
Смещение часового пояса для UTC, с идентификатором 'Z'.

MIN

public static final ZoneOffset MIN
Константа для минимального поддерживаемого смещения.

MAX

public static final ZoneOffset MAX
Константа для максимального поддерживаемого смещения.

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

of

public static ZoneOffset of(String offsetId)
Получает экземпляр ZoneOffset по идентификатору.

Этот метод анализирует строковый идентификатор ZoneOffset для возвращения экземпляра. Анализ поддерживает все форматы, генерируемые getId(), а также некоторые дополнительные форматы:

  • Z - для UTC
  • +h
  • +hh
  • +hh:mm
  • -hh:mm
  • +hhmm
  • -hhmm
  • +hh:mm:ss
  • -hh:mm:ss
  • +hhmmss
  • -hhmmss
Обратите внимание, что ± означает как знак плюс, так и знак минус.

Идентификатор возвращаемого смещения будет приведен к одному из форматов, описанных в getId().

Максимальный поддерживаемый диапазон от +18:00 до -18:00 включительно.

Параметры:
offsetId - идентификатор смещения, не null
Возвращает:
часовой пояс, не null
Исключение:
DateTimeException - если идентификатор смещения недействителен

ofHours

public static ZoneOffset ofHours(int hours)
Получает экземпляр ZoneOffset, используя смещение в часах.
Параметры:
hours - смещение часового пояса в часах, от -18 до +18
Возвращает:
часовой пояс, не null
Исключение:
DateTimeException - если смещение не в требуемом диапазоне

ofHoursMinutes

public static ZoneOffset ofHoursMinutes(int hours, int minutes)
Получает экземпляр ZoneOffset, используя смещение в часах и минутах.

Знак компонентов часов и минут должен совпадать. Таким образом, если часы отрицательные, минуты должны быть отрицательными или нулевыми. Если часы равны нулю, минуты могут быть положительными, отрицательными или нулевыми.

Параметры:
hours - смещение часового пояса в часах, от -18 до +18
minutes - смещение часового пояса в минутах, от 0 до ±59, знак совпадает с часами
Возвращает:
часовой пояс, не null
Исключение:
DateTimeException - если смещение не в требуемом диапазоне

ofHoursMinutesSeconds

public static ZoneOffset ofHoursMinutesSeconds(int hours, int minutes, int seconds)
Получает экземпляр ZoneOffset, используя смещение в часах, минутах и секундах.

Знак компонентов часов, минут и секунд должен совпадать. Таким образом, если часы отрицательные, минуты и секунды должны быть отрицательными или нулевыми.

Параметры:
hours - смещение часового пояса в часах, от -18 до +18
minutes - смещение часового пояса в минутах, от 0 до ±59, знак совпадает с часами и секундами
seconds - смещение часового пояса в секундах, от 0 до ±59, знак совпадает с часами и минутами
Возвращает:
часовой пояс, не null
Исключение:
DateTimeException - если смещение не в требуемом диапазоне

from

public static ZoneOffset from(TemporalAccessor temporal)
Получает экземпляр ZoneOffset из временного объекта.

Это получает смещение на основе указанного временного объекта. TemporalAccessor представляет собой произвольный набор информации о дате и времени, который эта фабрика преобразует в экземпляр ZoneOffset.

TemporalAccessor представляет собой какой-либо вид информации о дате и времени. Эта фабрика преобразует произвольный временной объект в экземпляр ZoneOffset.

Преобразование использует запрос TemporalQueries.offset(), который опирается на извлечение поля OFFSET_SECONDS.

Этот метод соответствует сигнатуре функционального интерфейса TemporalQuery, позволяя использовать его в качестве запроса с помощью ссылки на метод, ZoneOffset::from.

Параметры:
temporal - временной объект для преобразования, не null
Возвращает:
часовой пояс, не null
Исключение:
DateTimeException - если невозможно преобразовать во временной пояс

ofTotalSeconds

public static ZoneOffset ofTotalSeconds(int totalSeconds)
Получает экземпляр ZoneOffset, указывая общее смещение во секундах

Смещение должно быть в диапазоне -18:00 до +18:00, что соответствует -64800 до +64800.

Параметры:
totalSeconds - общее смещение часового пояса в секундах, от -64800 до +64800
Возвращает:
ZoneOffset, не null
Исключение:
DateTimeException - если смещение не в требуемом диапазоне

getTotalSeconds

public int getTotalSeconds()
Получает общее смещение часового пояса в секундах.

Это основной способ доступа к величине смещения. Возвращает сумму часов, минут и секунд как единое смещение, которое можно добавить к времени.

Возвращает:
общее смещение часового пояса в секундах

getId

public String getId()
Получает нормализованный идентификатор смещения часового пояса.

Идентификатор представляет собой незначительное изменение стандартной строки в формате ISO-8601 для смещения. Существует три формата:

  • Z - для UTC (ISO-8601)
  • +hh:mm или -hh:mm - если секунды равны нулю (ISO-8601)
  • +hh:mm:ss или -hh:mm:ss - если секунды не равны нулю (не ISO-8601)
Указано в:
getId в классе ZoneId
Возвращает:
идентификатор смещения часового пояса, не null

getRules

public ZoneRules getRules()
Получает связанные правила часового пояса.

Правила всегда возвращают это смещение при запросе. Класс реализации неизменяемый, потокобезопасный и сериализуемый.

Указано в:
getRules в классе ZoneId
Возвращает:
правила, не null

isSupported

public boolean isSupported(TemporalField field)
Проверяет, поддерживается ли указанное поле.

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

Если поле является ChronoField, то запрос реализован здесь. Поле OFFSET_SECONDS возвращает true. Все остальные экземпляры ChronoField вернут false.

Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.isSupportedBy(TemporalAccessor) передав this в качестве аргумента. Поддерживается ли поле определяется полем.

Указано в:
isSupported в интерфейсе TemporalAccessor
Параметры:
field - поле для проверки, null возвращает false
Возвращает:
true, если поле поддерживается этим смещением, false в противном случае

range

public ValueRange range(TemporalField field)
Получает диапазон допустимых значений для указанного поля.

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

Если поле является ChronoField, то запрос реализован здесь. Метод supported fields вернет соответствующие экземпляры диапазона. Все остальные экземпляры ChronoField выбросят UnsupportedTemporalTypeException.

Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.rangeRefinedBy(TemporalAccessor) передав this в качестве аргумента. Возможно ли получить диапазон определяется полем.

Указано в:
range в интерфейсе TemporalAccessor
Параметры:
field - поле для запроса диапазона, не null
Возвращает:
диапазон допустимых значений для поля, не null
Исключение:
DateTimeException - если диапазон для поля получить невозможно
UnsupportedTemporalTypeException - если поле не поддерживается

get

public int get(TemporalField field)
Возвращает значение указанного поля из этого смещения как int.

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

Если поле является ChronoField, то запрос реализуется здесь. Поле OFFSET_SECONDS возвращает значение смещения. Все другие экземпляры ChronoField будут выбрасывать UnsupportedTemporalTypeException.

Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.getFrom(TemporalAccessor) передавая this в качестве аргумента. Возможность получения значения и то, что оно представляет, определяется полем.

Определено в:
get в интерфейсе TemporalAccessor
Параметры:
field - поле для получения, не null
Возвращает:
значение для поля
Исключения:
DateTimeException - если значение для поля получить невозможно или значение находится за пределами допустимого диапазона значений для поля
UnsupportedTemporalTypeException - если поле не поддерживается или диапазон значений превышает int
ArithmeticException - если происходит переполнение целочисленного значения

getLong

public long getLong(TemporalField field)
Возвращает значение указанного поля из этого смещения как long.

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

Если поле является ChronoField, то запрос реализуется здесь. Поле OFFSET_SECONDS возвращает значение смещения. Все другие экземпляры ChronoField будут выбрасывать UnsupportedTemporalTypeException.

Если поле не является ChronoField, то результат этого метода получается путем вызова TemporalField.getFrom(TemporalAccessor) передавая this в качестве аргумента. Возможность получения значения и то, что оно представляет, определяется полем.

Определено в:
getLong в интерфейсе TemporalAccessor
Параметры:
field - поле для получения, не null
Возвращает:
значение для поля
Исключения:
DateTimeException - если значение для поля получить невозможно
UnsupportedTemporalTypeException - если поле не поддерживается
ArithmeticException - если происходит переполнение целочисленного значения

query

public <R> R query(TemporalQuery<R> query)
Запрашивает это смещение с использованием указанного запроса.

Запрашивает это смещение с использованием указанного объекта стратегии запроса. Объект TemporalQuery определяет логику, которая должна использоваться для получения результата. Прочитайте документацию запроса, чтобы понять, каким будет результат этого метода.

Результат этого метода получается путем вызова метода TemporalQuery.queryFrom(TemporalAccessor) для указанного запроса, передавая this в качестве аргумента.

Определено в:
query в интерфейсе TemporalAccessor
Параметры типа:
R - тип результата
Параметры:
query - запрос для вызова, не null
Возвращает:
результат запроса, может быть null (определяется запросом)
Исключения:
DateTimeException - если запрос выполнить невозможно (определяется запросом)
ArithmeticException - если происходит переполнение целочисленного значения (определяется запросом)

adjustInto

public Temporal adjustInto(Temporal temporal)
Изменяет указанный временной объект, чтобы он имел то же смещение, что и этот объект.

Возвращает временной объект того же типа, что и входной, со смещением, измененным на то же, что и у этого.

Изменение эквивалентно использованию Temporal.with(TemporalField, long) с передачей ChronoField.OFFSET_SECONDS в качестве поля.

В большинстве случаев проще инвертировать порядок вызова, используя Temporal.with(TemporalAdjuster):

   // these two lines are equivalent, but the second approach is recommended
   temporal = thisOffset.adjustInto(temporal);
   temporal = temporal.with(thisOffset);
 

Этот экземпляр неизменяемый и не изменяется этим методом вызова.

Определено в:
adjustInto в интерфейсе TemporalAdjuster
Параметры:
temporal - целевой объект для изменения, не null
Возвращает:
измененный объект, не null
Исключения:
DateTimeException - если изменение невозможно
ArithmeticException - если происходит переполнение целочисленного значения

compareTo

public int compareTo(ZoneOffset other)
Сравнивает это смещение с другим смещением в порядке убывания.

Смещения сравниваются в том порядке, в котором они появляются для одного и того же времени суток по всему миру. Таким образом, смещение +10:00 предшествует смещению +09:00 и так далее до -18:00.

Сравнение "совместимо с equals", как определено в Comparable.

Определено в:
compareTo в интерфейсе Comparable<ZoneOffset>
Параметры:
other - другое смещение для сравнения, не null
Возвращает:
значение компаратора, которое меньше нуля, если это totalSeconds меньше other totalSeconds, ноль, если они равны, больше нуля, если это totalSeconds больше, чем other totalSeconds
Исключения:
NullPointerException - если other равно null

equals

public boolean equals(Object obj)
Проверяет, равно ли это смещение другому смещению.

Сравнение основано на величине смещения во секундах. Это эквивалентно сравнение по идентификатору.

Переопределяет:
equals в классе ZoneId
Параметры:
obj - объект для проверки, null возвращает false
Возвращает:
true, если это равно другому смещению
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Код хэширования для этого смещения.
Переопределяет:
hashCode в классе ZoneId
Возвращает:
подходящий код хэширования
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

toString

public String toString()
Выводит это смещение как String, используя нормализованный идентификатор.
Переопределяет:
toString в классе ZoneId
Возвращает:
строковое представление этого смещения, не null

© 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/time/ZoneOffset.html

Spec-Zone.ru

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