Класс 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 для Парижа будет ссылаться на два объекта +01:00 — объект для зимнего времени и объект для летнего времени.
В 2008 году смещения часовых поясов по всему миру варьировались от -12:00 до +14:00. Чтобы избежать проблем, связанных с расширением этого диапазона, а также обеспечить валидацию, диапазон смещений ограничен от -18:00 до 18:00 включительно.
Этот класс предназначен для использования с календарной системой ISO. Поля часов, минут и секунд предполагают корректность согласно стандартным определениям ISO для этих полей. Этот класс можно использовать с другими календарными системами, при условии, что определения временных полей соответствуют календарной системе ISO.
Экземпляры ZoneOffset должны сравниваться с помощью equals(java.lang.Object). Реализации могут выбирать кеширование некоторых распространённых смещений, однако приложения не должны полагаться на такое кеширование.
Это класс значений; использование операций, чувствительных к идентичности (включая равенство ссылок (==), хэш-код идентичности или синхронизацию) над экземплярами ZoneOffset может привести к непредсказуемым результатам и следует избегать. Для сравнения следует использовать метод equals.
- Требования к реализации:
- Этот класс неизменяемый и потокобезопасный.
- С:
- 1.8
- См. также:
- Сериализованная форма
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
static ZoneOffset | MAX | Константа для максимального поддерживаемого смещения. |
static ZoneOffset | MIN | Константа для минимального поддерживаемого смещения. |
static ZoneOffset | UTC | Смещение часового пояса для UTC со значением ID 'Z'. |
Поля, объявленные в классе java.time.ZoneId
SHORT_IDS Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
Temporal | adjustInto(Temporal temporal) | Настраивает указанный временной объект так, чтобы его смещение совпадало со смещением текущего объекта. |
int | compareTo(ZoneOffset other) | Сравнивает текущее смещение с другим смещением в порядке убывания. |
boolean | equals(Object obj) | Проверяет, равно ли это смещение другому смещению. |
static ZoneOffset | from(TemporalAccessor temporal) | Возвращает экземпляр |
int | get(TemporalField field) | Возвращает значение указанного поля из этого смещения в виде |
String | getId() | Возвращает нормализованный идентификатор смещения часового пояса. |
long | getLong(TemporalField field) | Возвращает значение указанного поля из этого смещения в виде |
ZoneRules | getRules() | Возвращает связанные правила часового пояса. |
int | getTotalSeconds() | Возвращает общее смещение часового пояса во секундах. |
int | hashCode() | Хэш-код для этого смещения. |
boolean | isSupported(TemporalField field) | Проверяет, поддерживается ли указанное поле. |
static ZoneOffset | of(String offsetId) | Возвращает экземпляр |
static ZoneOffset | ofHours(int hours) | Возвращает экземпляр |
static ZoneOffset | ofHoursMinutes(int hours,
int minutes) | Возвращает экземпляр |
static ZoneOffset | ofHoursMinutesSeconds(int hours,
int minutes,
int seconds) | Возвращает экземпляр |
static ZoneOffset | ofTotalSeconds(int totalSeconds) | Возвращает экземпляр |
<R> R | query(TemporalQuery<R> query) | Выполняет запрос к этому смещению с использованием указанного запроса. |
ValueRange | range(TemporalField field) | Возвращает диапазон допустимых значений для указанного поля. |
String | toString() | Выводит это смещение как |
Методы, объявленные в классе 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)
getRules
public ZoneRules getRules()
Получает связанные правила часового пояса.
Правила всегда вернут это смещение при запросе. Класс реализации неизменяемый, потокобезопасный и сериализуемый.
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, используя нормализованный идентификатор.
© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/ZoneOffset.html