Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class ZoneId extends Object implements Serializable
Europe/Paris
. A ZoneId
используется, чтобы идентифицировать правила, используемые, чтобы преобразовать между Instant
и a LocalDateTime
. Есть два отличных типа ID:
Наиболее фиксированные смещения представляются ZoneOffset
. Вызов normalized()
на любом ZoneId
гарантирует, что фиксированный ID смещения будет представлен как a ZoneOffset
.
Фактические правила, описывая, когда и как смещение изменяется, определяются ZoneRules
. Этот class является просто ID, используемым, чтобы получить базовые правила. Этот подход проявляется, потому что правила определяются правительствами и часто изменяются, тогда как ID устойчив.
Различие имеет другие эффекты. Сериализация ZoneId
только отправит ID, тогда как сериализация правил отправляет весь набор данных. Точно так же сравнение двух ID только исследует ID, тогда как сравнение двух правил исследует весь набор данных.
Самый простой тип ID - это от ZoneOffset
. Это состоит из 'Z' и IDs, запускающегося с '+' или '-'.
Следующий тип ID является ID стиля смещения с некоторой формой префикса, такими как 'GMT+2' или 'UTC+01:00'. Распознанными префиксами является 'UTC', 'GMT' и 'UT'. Смещение является суффиксом и будет нормализовано во время создания. Эти ID могут быть нормализованы к a ZoneOffset
использование normalized()
.
Третий тип ID является основанными на области ID. Основанный на области ID должен иметь два или больше характера, и не запуститься с 'UTC', 'GMT', 'UT' '+' или '-'. Основанные на области ID определяются конфигурацией, видят ZoneRulesProvider
. Конфигурация сосредотачивается на том, чтобы обеспечивать поиск от ID до базового ZoneRules
.
Правила часового пояса определяются правительствами и изменением часто. Есть много организаций, известных здесь как группы, которые наблюдают изменения часового пояса и сопоставляют их. Группа значения по умолчанию является Базой данных Часового пояса IANA (TZDB). Другие организации включают IATA (тело авиалиний) и Microsoft.
Каждая группа определяет свой собственный формат для ID области, который она обеспечивает. Группа TZDB определяет ID, такие как 'Европа/Лондон' или 'America/New_York'. ID TZDB имеют приоритет по другим группам.
Строго рекомендуется, чтобы название группы было включено во все ID, предоставленные группами кроме TZDB, чтобы избежать конфликтов. Например, ID области часового пояса авиалинии IATA обычно являются тем же самым как тремя кодами аэропорта буквы. Однако, у аэропорта Утрехта есть код 'UTC', который является, очевидно, конфликтом. Рекомендуемый формат для ID области от групп кроме TZDB является 'group~region'. Таким образом, если бы данные IATA были определены, то Утрехтским аэропортом был бы 'IATA~UTC'.
ZoneOffset
разделите на подклассы использует выделенный формат, который только хранит смещение от UTC/Гринвича. A ZoneId
может быть десериализован в Среде выполнения Java, где ID неизвестен. Например, если серверная Среда выполнения Java была обновлена с новым зональным ID, но клиентская Среда выполнения Java не была обновлена. В этом случае, ZoneId
объект будет существовать, и может быть запрошен, используя getId
, equals
, hashCode
, toString
, getDisplayName
и normalized
. Однако, любой звонок getRules
перестанет работать с ZoneRulesException
. Этот подход разрабатывается, чтобы позволить a ZonedDateTime
быть загруженным и запрошенным, но не измененным, на Среде выполнения Java с неполной информацией о часовом поясе.
ZoneOffset
моделирование основанных на смещении ID. Это различие видимо в сериализации.Модификатор и Тип | Поле и Описание |
---|---|
static Map<String,String> |
OLD_SHORT_IDS
Карта зональных переопределений, чтобы позволить более старым коротким именам часового пояса, которые будут использоваться.
|
static Map<String,String> |
SHORT_IDS
Карта зональных переопределений, чтобы позволить коротким именам часового пояса, которые будут использоваться.
|
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
equals(Object obj)
Проверки, если этот ID часового пояса равен другому ID часового пояса.
|
static ZoneId |
from(TemporalAccessor temporal)
Получает экземпляр
ZoneId от временного объекта. |
static Set<String> |
getAvailableZoneIds()
Получает набор доступных зональных ID.
|
Строка |
getDisplayName(TextStyle style, Locale locale)
Получает текстовое представление зоны, такой как 'британское Время' или '+02:00'.
|
abstract String |
getId()
Получает уникальный ID часового пояса.
|
abstract ZoneRules |
getRules()
Получает правила часового пояса для этого разрешения ID вычисления быть выполненным.
|
int |
hashCode()
Хэш-код для этого ID часового пояса.
|
ZoneId |
normalized()
Нормализует ID часового пояса, возвращаясь a
ZoneOffset где только возможно. |
static ZoneId |
of(String zoneId)
Получает экземпляр
ZoneId от ID, гарантирующего, что ID допустим и доступен для использования. |
static ZoneId |
of(String zoneId, Map<String,String> aliasMap)
Получает экземпляр
ZoneId использование его ID, используя карту псевдонимов, чтобы добавить стандартные зональные ID. |
static ZoneId |
systemDefault()
Получает часовой пояс системного значения по умолчанию.
|
Строка |
toString()
Выводит эту зону как a
String , использование ID. |
public static final Map<String,String> OLD_SHORT_IDS
Использование коротких зональных ID было осуждено в java.util.TimeZone
. Эта карта позволяет ID продолжать использоваться через of(String, Map)
метод фабрики.
Эта карта содержит более старое отображение ID, где 'ОЦЕНКА', 'MST' и 'HST' отображаются на ID, которые включают переход на летнее время. Это соответствует версиям TZDB прежде 2005r.
Это отображается следующим образом:
Карта является неподдающейся изменению.
public static final Map<String,String> SHORT_IDS
Использование коротких зональных ID было осуждено в java.util.TimeZone
. Эта карта позволяет ID продолжать использоваться через of(String, Map)
метод фабрики.
Эта карта содержит более новое отображение ID, где 'ОЦЕНКА', 'MST' и 'HST' отображаются на ID, которые не включают переход на летнее время, Это соответствует TZDB 2005r и позже.
Это отображается следующим образом:
Карта является неподдающейся изменению.
public static ZoneId systemDefault()
Это запрашивает TimeZone.getDefault()
найти часовой пояс значения по умолчанию и преобразовывает это в a ZoneId
. Если часовой пояс системного значения по умолчанию будет изменен, то результат этого метода также изменится.
DateTimeException
- если у преобразованного зонального ID есть недопустимый форматZoneRulesException
- если преобразованный зональный ID области не может быть найденpublic static Set<String> getAvailableZoneIds()
Этот набор включает строковую форму всех доступных основанных на области ID. Основанные на смещении зональные ID не включаются в возвращенный набор. К ID можно передать of(String)
создать a ZoneId
.
Набор зональных ID может увеличиться в течение долгого времени, хотя в типичном приложении набор ID фиксируется. Каждый звонок в этот метод ориентирован на многопотоковое исполнение.
public static ZoneId of(String zoneId, Map<String,String> aliasMap)
ZoneId
использование его ID, используя карту псевдонимов, чтобы добавить стандартные зональные ID. Много пользователей часовых поясов используют короткие сокращения, такие как PST для 'Тихоокеанского времени' и PDT в течение 'Тихоокеанского Летнего времени'. Эти сокращения не уникальны, и так не могут использоваться в качестве ID. Этот метод позволяет карте строки к часовому поясу быть установкой и снова использованный в пределах приложения.
zoneId
- ID часового пояса, не нульaliasMap
- карта ID зоны псевдонима (обычно сокращения) к реальным зональным ID, не нулюDateTimeException
- если у зонального ID есть недопустимый форматZoneRulesException
- если зональный ID является ID области, который не может быть найденpublic static ZoneId of(String zoneId)
ZoneId
от ID, гарантирующего, что ID допустим и доступен для использования. Этот метод анализирует ID, производящий a ZoneId
или ZoneOffset
. A ZoneOffset
возвращается, если ID является 'Z', или запускается с '+' или '-'. Результатом всегда будет допустимый ID для который ZoneRules
может быть получен.
Парсинг соответствует зональный ID шаг за шагом следующим образом.
ZoneOffset.UTC
. DateTimeException
бросается. ZoneOffset
использование ZoneOffset.of(String)
. ZoneId
с тем же самым ID и правилами, эквивалентными ZoneOffset.UTC
. ZoneOffset
. Результатом будет a ZoneId
с указанным префиксом UTC/GMT/UT и нормализованным ID смещения согласно ZoneOffset.getId()
. Правила возвращенного ZoneId
будет эквивалентно проанализированному ZoneOffset
. [A-Za-z][A-Za-z0-9~/._+-]+
иначе a DateTimeException
бросается. Если зональный ID не находится в сконфигурированном наборе ID, ZoneRulesException
бросается. Подробный формат ID области зависит от группы, снабжающей данными. Набор значения по умолчанию данных предоставляется Базой данных Часового пояса IANA (TZDB). У этого есть ID области формы' {область} / {город}', такие как 'Европа/Париж' или 'America/New_York'. Это является совместимым с большинством ID от TimeZone
. zoneId
- ID часового пояса, не нульDateTimeException
- если у зонального ID есть недопустимый форматZoneRulesException
- если зональный ID является ID области, который не может быть найденpublic static ZoneId from(TemporalAccessor temporal)
ZoneId
от временного объекта. Это получает зону, основанную на указанном временном. A TemporalAccessor
представляет произвольный набор даты и информации времени, из которой эта фабрика преобразовывает в экземпляр ZoneId
.
A TemporalAccessor
представляет некоторую форму информации времени и даты. Эта фабрика преобразовывает произвольный временный объект в экземпляр ZoneId
.
Преобразование попытается получить зону в пути, который одобряет основанные на области зоны по основанному на смещении использованию зон TemporalQuery.zone()
.
Этот метод соответствует подпись функционального интерфейса TemporalQuery
разрешение этого использоваться в запросах через ссылку метода, ZoneId::from
.
temporal
- временный объект преобразовать, не нульDateTimeException
- если неспособный преобразовать в a ZoneId
public abstract String getId()
Этот ID уникально определяет этот объект. Формат смещения базируемый ID определяется ZoneOffset.getId()
.
public String getDisplayName(TextStyle style, Locale locale)
Это возвращает текстовое имя, используемое, чтобы идентифицировать ID часового пояса, подходящий для представления пользователю. Параметры управляют стилем возвращенного текста и локали.
Если никакое текстовое отображение не находится тогда full ID
возвращается.
style
- длина требуемого текста, не нульlocale
- локаль, чтобы использовать, не нульpublic abstract ZoneRules getRules()
Правила предоставляют функциональности, связанной часовой пояс, такой как обнаружение смещения для данного мгновенного или разового датой локального.
Часовой пояс может быть недопустимым, если он десериализовывается в Среде выполнения Java, которой не загружали те же самые правила как Среда выполнения Java, которая сохранила его. В этом случае вызов этого метода бросит a ZoneRulesException
.
Правила предоставляются ZoneRulesProvider
. Усовершенствованный провайдер может поддерживать динамические обновления к правилам, не перезапуская Среду выполнения Java. Если так, тогда результат этого метода может измениться в течение долгого времени. Каждый отдельный вызов будет, все еще остаются ориентированными на многопотоковое исполнение.
ZoneOffset
будет всегда возвращать ряд правил, где смещение никогда не изменяется.
ZoneRulesException
- если никакие правила не доступны для этого IDpublic ZoneId normalized()
ZoneOffset
где только возможно. Возвраты нормализованный ZoneId
это может использоваться вместо этого ID. Результат будет иметь ZoneRules
эквивалентный возвращенным этим объектом, однако ID, возвращенный getId()
может отличаться.
Нормализация проверяет если правила этого ZoneId
имейте фиксированное смещение. Если они делают, то ZoneOffset
равный тому смещению возвращается. Иначе this
возвращается.
public boolean equals(Object obj)
Сравнение основано на ID.
equals
в class Object
obj
- объект проверить, обнулите, возвращает falseObject.hashCode()
, HashMap
public int hashCode()
hashCode
в class Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92