Spec-Zone .ru
спецификации, руководства, описания, API
|
public final class ZoneRules extends Object implements Serializable
Модель правил все исторические и будущие переходы для часового пояса. ZoneOffsetTransition
используется для известных переходов, обычно исторических. ZoneOffsetTransitionRule
используется для будущих переходов, которые основаны на результате алгоритма.
Правила загружаются через ZoneRulesProvider
использование a ZoneId
. Те же самые правила могут быть совместно использованы внутренне многократными зональными ID.
Сериализация экземпляра ZoneRules
сохранит весь ряд правил. Это не хранит зональный ID, поскольку это не часть состояния этого объекта.
Реализация правила может или, возможно, не хранит полную информацию об исторических и будущих переходах, и хранившая информация только столь же точна как предоставленное реализации провайдером правил. Приложения должны обработать данные, обеспеченные как представление лучшей информации, доступной реализации этого правила.
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
equals(Object otherRules)
Проверки, если этот ряд правил равняется другому.
|
Продолжительность |
getDaylightSavings(Instant instant)
Получает количество перехода на летнее время в использовании в течение указанного момента в этой зоне.
|
ZoneOffset |
getOffset(Instant instant)
Получает смещение, применимое в указанный момент в этих правилах.
|
ZoneOffset |
getOffset(LocalDateTime localDateTime)
Получает подходящее смещение для указанной локальной переменной, разовой датой в этих правилах.
|
ZoneOffset |
getStandardOffset(Instant instant)
Получает стандартное смещение в течение указанного момента в этой зоне.
|
ZoneOffsetTransition |
getTransition(LocalDateTime localDateTime)
Получает переход смещения, применимый в указанной локальной переменной, разовой датой в этих правилах.
|
List<ZoneOffsetTransitionRule> |
getTransitionRules()
Получает список правил перехода в течение многих лет вне определенных в списке перехода.
|
List<ZoneOffsetTransition> |
getTransitions()
Получает полный список полностью определенных переходов.
|
List<ZoneOffset> |
getValidOffsets(LocalDateTime localDateTime)
Получает смещение, применимое в указанной локальной переменной, разовой датой в этих правилах.
|
int |
hashCode()
Возвращает подходящий хэш-код, данный определение
#equals . |
boolean |
isDaylightSavings(Instant instant)
Проверки, если указанный момент находится в переходе на летнее время.
|
boolean |
isFixedOffset()
Проверки зональных правил фиксируются, так, что смещение никогда не изменяется.
|
boolean |
isValidOffset(LocalDateTime localDateTime, ZoneOffset offset)
Проверки, если разовое датой смещение допустимо для этих правил.
|
ZoneOffsetTransition |
nextTransition(Instant instant)
Получает следующий переход после указанного момента.
|
static ZoneRules |
of(ZoneOffset offset)
Получает экземпляр ZoneRules, который фиксировал зональные правила.
|
static ZoneRules |
of(ZoneOffset baseStandardOffset, ZoneOffset baseWallOffset, List<ZoneOffsetTransition> standardOffsetTransitionList, List<ZoneOffsetTransition> transitionList, List<ZoneOffsetTransitionRule> lastRules)
Получает экземпляр ZoneRules.
|
ZoneOffsetTransition |
previousTransition(Instant instant)
Получает предыдущий переход перед указанным моментом.
|
Строка |
toString()
Возвращает строку, описывающую этот объект.
|
public static ZoneRules of(ZoneOffset baseStandardOffset, ZoneOffset baseWallOffset, List<ZoneOffsetTransition> standardOffsetTransitionList, List<ZoneOffsetTransition> transitionList, List<ZoneOffsetTransitionRule> lastRules)
baseStandardOffset
- стандартное смещение, чтобы использовать перед правовыми нормами было установлено, не нульbaseWallOffset
- стенное смещение, чтобы использовать перед правовыми нормами было установлено, не нульstandardOffsetTransitionList
- список изменений к стандартному смещению, не нульtransitionList
- список переходов, не нульlastRules
- повторяющиеся последние правила, размер 16 или меньше, не нульpublic static ZoneRules of(ZoneOffset offset)
offset
- смещение эта фиксированная зона правила основано на, не нульisFixedOffset()
public boolean isFixedOffset()
public ZoneOffset getOffset(Instant instant)
Отображение с момента к смещению просто, есть только одно допустимое смещение в течение каждого момента. Эти возвраты метода, которые смещают.
instant
- момент, чтобы найти смещение для, не нуль, но нуль может быть проигнорирован, если у правил есть единственное смещение в течение всех моментовpublic ZoneOffset getOffset(LocalDateTime localDateTime)
Отображение от локальной переменной, разовой датой к смещению, не является прямым. Есть три случая:
Таким образом для любой данной локальной переменной, разовой датой может быть нуль, одно или два допустимых смещения. Этот метод возвращает единственное смещение в Нормальном случае, и в случае Разрыва или Перекрытия это возвращает смещение перед переходом.
С тех пор, в случае Разрыва и Перекрытия, возвращенное смещение является "лучшим" значением, а не "корректным" значением, это должно быть обработано с заботой. Приложения, которые заботятся о корректном смещении, должны использовать комбинацию этого метода, getValidOffsets(LocalDateTime)
и getTransition(LocalDateTime)
.
localDateTime
- локальная переменная, разовая датой, чтобы запросить, не, нуль, но нуль может быть проигнорирован, если у правил есть единственное смещение в течение всех моментовpublic List<ZoneOffset> getValidOffsets(LocalDateTime localDateTime)
Отображение от локальной переменной, разовой датой к смещению, не является прямым. Есть три случая:
Таким образом для любой данной локальной переменной, разовой датой может быть нуль, одно или два допустимых смещения. Эти возвраты метода, что список допустимых смещений, который является списком размера 0, 1 или 2. В случае, где есть два смещения, более раннее смещение возвращается в, индексируют 0, и более позднее смещение в индексируют 1.
Есть различные способы обработать преобразование из a LocalDateTime
. Один метод, используя этот метод, был бы:
List<ZoneOffset> validOffsets = rules.getOffset(localDT); if (validOffsets.size() == 1) { // Normal case: only one valid offset zoneOffset = validOffsets.get(0); } else { // Gap or Overlap: determine what to do from transition (which will be non-null) ZoneOffsetTransition trans = rules.getTransition(localDT); }
В теории для там возможно быть больше чем двумя допустимыми смещениями. Это произошло бы если часы, которые будут отложены не раз в быстрой последовательности. Это никогда не происходило в истории часовых поясов и таким образом не имеет никакой специальной обработки. Однако, если бы это должно было произойти, тогда список возвратил бы больше чем 2 записи.
localDateTime
- локальная переменная, разовая датой, чтобы запросить для допустимых смещений, не, нуль, но нуль может быть проигнорирован, если у правил есть единственное смещение в течение всех моментовpublic ZoneOffsetTransition getTransition(LocalDateTime localDateTime)
Отображение от локальной переменной, разовой датой к смещению, не является прямым. Есть три случая:
Переход используется, чтобы смоделировать случаи Разрыва или Перекрытия. Нормальный случай возвратит нуль.
Есть различные способы обработать преобразование из a LocalDateTime
. Один метод, используя этот метод, был бы:
ZoneOffsetTransition trans = rules.getTransition(localDT); if (trans == null) { // Gap or Overlap: determine what to do from transition } else { // Normal case: only one valid offset zoneOffset = rule.getOffset(localDT); }
localDateTime
- локальная переменная, разовая датой, чтобы запросить для перехода смещения, не, нуль, но нуль может быть проигнорирован, если у правил есть единственное смещение в течение всех моментовpublic ZoneOffset getStandardOffset(Instant instant)
Это обеспечивает доступ к исторической информации о том, как стандартное смещение изменилось в течение долгого времени. Стандартное смещение является смещением прежде, чем любое летнее время будет применено. Это обычно - смещение, применимое в течение зимы.
instant
- момент, чтобы найти информацию о смещении для, не нуль, но нуль может быть проигнорирован, если у правил есть единственное смещение в течение всех моментовpublic Duration getDaylightSavings(Instant instant)
Это обеспечивает доступ к исторической информации о том, как количество перехода на летнее время изменилось в течение долгого времени. Это - различие между стандартным смещением и фактическим смещением. Обычно количество является нулем в течение зимы и одного часа в течение лета. Часовые пояса являются вторыми на основе, таким образом, часть наносекунды продолжительности будет нулем.
Эта реализация по умолчанию вычисляет продолжительность от actual
и standard
смещения.
instant
- момент, чтобы найти переход на летнее время для, не нуль, но нуль может быть проигнорирован, если у правил есть единственное смещение в течение всех моментовpublic boolean isDaylightSavings(Instant instant)
Это проверяет, является ли смещенный стандарт и фактическое смещение тем же самым в течение указанного момента. Если они не, предполагается, что переход на летнее время в действии.
Эта реализация по умолчанию сравнивается actual
и standard
смещения.
instant
- момент, чтобы найти информацию о смещении для, не нуль, но нуль может быть проигнорирован, если у правил есть единственное смещение в течение всех моментовpublic boolean isValidOffset(LocalDateTime localDateTime, ZoneOffset offset)
Чтобы быть допустимой, разовая датой локальная переменная не должна быть в разрыве, и смещение должно соответствовать одно из допустимых смещений.
Эта реализация по умолчанию проверяет если getValidOffsets(java.time.LocalDateTime)
содержит указанное смещение.
localDateTime
- разовое датой, чтобы проверить, не нуль, но нуль может быть проигнорирован, если у правил есть единственное смещение в течение всех моментовoffset
- смещение, чтобы проверить, обнулите, возвращает falsepublic ZoneOffsetTransition nextTransition(Instant instant)
Это возвращает детали следующего перехода после указанного момента. Например, если момент представит точку, где "Летнее" летнее время применяется, тогда то метод возвратит переход следующему "Зимнему" разу.
instant
- момент, чтобы получить следующий переход после, не нуль, но нуль может быть проигнорирован, если у правил есть единственное смещение в течение всех моментовpublic ZoneOffsetTransition previousTransition(Instant instant)
Это возвращает детали предыдущего перехода после указанного момента. Например, если момент представит точку, где "летнее" летнее время применяется, тогда то метод возвратит переход с предыдущего "зимнего" раза.
instant
- момент, чтобы получить предыдущий переход после, не нуль, но нуль может быть проигнорирован, если у правил есть единственное смещение в течение всех моментовpublic List<ZoneOffsetTransition> getTransitions()
Полный набор переходов для этого постановляет, что экземпляр определяется этим методом и getTransitionRules()
. Этот метод возвращает те переходы, которые были полностью определены. Они являются обычно историческими, но могут быть в будущем.
Список будет пуст для фиксированных правил смещения и для любого часового пояса, где только когда-либо было единственное смещение. Список также будет пуст, если правила перехода будут неизвестны.
public List<ZoneOffsetTransitionRule> getTransitionRules()
Полный набор переходов для этого постановляет, что экземпляр определяется этим методом и getTransitions()
. Этот метод возвращает экземпляры ZoneOffsetTransitionRule
это определяет алгоритм для того, когда переходы произойдут.
Для любого данного ZoneRules
, этот список содержит правила перехода в течение многих лет вне тех лет, которые были полностью определены. Эти правила обычно относятся к будущим изменениям правил летнего времени.
Если зона определит переход на летнее время в будущее, то список будет обычно иметь размер два и содержать информацию о вводе и выходе из перехода на летнее время. Если у зоны не будет перехода на летнее время, или информация о будущих изменениях сомнительна, то список будет пуст.
Список будет пуст для фиксированных правил смещения и для любого часового пояса, где нет никакого летнего времени. Список также будет пуст, если правила перехода будут неизвестны.
public boolean equals(Object otherRules)
Два набора правила равны, если они будут всегда приводить к тому же самому выводу для какого-либо данного ввода, мгновенного или локального разовый датой. Правила от двух различных групп могут возвратить false, даже если они - фактически то же самое.
Это определение должно привести к реализациям, сравнивающим их все состояние.
equals
в class Object
otherRules
- другие правила, нуль возвращает falseObject.hashCode()
, HashMap
public int hashCode()
#equals
.hashCode
в class Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92