Класс ZoneOffset
- Все реализуемые интерфейсы:
-
Serializable,Comparable<ZoneOffset>,TemporalAccessor,TemporalAdjuster
public final class ZoneOffset extends ZoneId implements TemporalAccessor, TemporalAdjuster, Comparable<ZoneOffset>, Serializable
+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'. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Temporal |
adjustInto |
Настройка указанного временного объекта для того, чтобы он имел то же смещение, что и этот объект. |
int |
compareTo |
Сравнение этого смещения с другим смещением в порядке убывания. |
boolean |
equals |
Проверка на равенство этого смещения с другим смещением. |
static ZoneOffset |
from |
Получение экземпляра ZoneOffset из временного объекта. |
int |
get |
Получение значения указанного поля из этого смещения в виде int. |
String |
getId() |
Получение нормализованного идентификатора смещения часового пояса. |
long |
getLong |
Получение значения указанного поля из этого смещения в виде long. |
ZoneRules |
getRules() |
Получение связанных правил часового пояса. |
int |
getTotalSeconds() |
Получение общего смещения часового пояса в секундах. |
int |
hashCode() |
Хэш-код для этого смещения. |
boolean |
isSupported |
Проверка поддержки указанного поля. |
static ZoneOffset |
of |
Получение экземпляра ZoneOffset по идентификатору. |
static ZoneOffset |
ofHours |
Получение экземпляра ZoneOffset по смещению в часах. |
static ZoneOffset |
ofHoursMinutes |
Получение экземпляра ZoneOffset по смещению в часах и минутах. |
static ZoneOffset |
ofHoursMinutesSeconds |
Получение экземпляра ZoneOffset по смещению в часах, минутах и секундах. |
static ZoneOffset |
ofTotalSeconds |
Получение экземпляра ZoneOffset, указав общее смещение в секундах |
<R> R |
query |
Запрос к этому смещению с использованием указанного запроса. |
ValueRange |
range |
Получение диапазона допустимых значений для указанного поля. |
String |
toString() |
Вывод этого смещения в виде String, используя нормализованный идентификатор. |
Методы, объявленные в классе java.time.ZoneId
getAvailableZoneIds, getDisplayName, normalized, of, ofOffset, systemDefault
Подробное описание полей
UTC
public static final ZoneOffset UTC
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 меньше
othertotalSeconds, ноль, если они равны, больше нуля, если это totalSeconds больше, чемothertotalSeconds - Исключения:
-
NullPointerException- еслиotherравно null
equals
public boolean equals(Object obj)
Сравнение основано на величине смещения во секундах. Это эквивалентно сравнение по идентификатору.
- Переопределяет:
-
equalsв классеZoneId - Параметры:
-
obj- объект для проверки, null возвращает false - Возвращает:
- true, если это равно другому смещению
- См. также:
hashCode
public int hashCode()
- Переопределяет:
-
hashCodeв классеZoneId - Возвращает:
- подходящий код хэширования
- См. также:
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