Spec-Zone.ru › OpenJDK 8

Класс 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). Реализации могут кешировать некоторые распространённые смещения, однако приложения не должны полагаться на такой кэширование.

Это класс value-based; использование операций, чувствительных к идентификатору (включая сравнение по ссылке (==), хеш-код по идентификатору или синхронизацию) на экземплярах ZoneOffset может привести к непредсказуемым результатам и должно быть избегаемо. Для сравнения следует использовать метод equals.

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

Поля

Модификатор и тип Поле и описание
static ZoneOffset MAX

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

static ZoneOffset MIN

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

static 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 - если невозможно преобразовать во ZoneOffset

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)

Проверяет, поддерживается ли указанное поле.

Проверяет, может ли это смещение быть запрошено для указанного поля. Если false, то вызов методов 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
Возвращает:
значение сравнения, отрицательное, если меньше, положительное, если больше
Исключения:
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, 2020, 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