class ZoneRulesBuilder extends AnyRef
A mutable builder used to create all the rules for a historic time-zone.
The rules of a time-zone describe how the offset changes over time. The rules are created by building windows on the time-line within which the different rules apply. The rules may be one of two kinds:
- Fixed savings - A single fixed amount of savings from the standard offset will apply.
- Rules - A set of one or more rules describe how daylight savings changes during the window.
Specification for implementors
This class is a mutable builder used to create zone instances. It must only be used from a single thread. The created instances are immutable and thread-safe.
Constructs an instance of the builder that can be used to create zone rules.
The builder is used by adding one or more windows representing portions of the time-line. The standard offset from UTC/Greenwich will be constant within a window, although two adjacent windows can have the same standard offset.
Within each window, there can either be a
fixed savings amount
or a
list of rules
.
- Alphabetic
- By Inheritance
- ZoneRulesBuilder
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new ZoneRulesBuilder()
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
addRuleToWindow(startYear: Int, endYear: Int, month: Month, dayOfMonthIndicator: Int, dayOfWeek: DayOfWeek, time: LocalTime, timeEndOfDay: Boolean, timeDefinition: TimeDefinition, savingAmountSecs: Int): ZoneRulesBuilder
Adds a multi-year transition rule to the current window.
Adds a multi-year transition rule to the current window.
This adds a rule such that the offset, expressed as a daylight savings amount, changes at the specified date-time for each year in the range.
- startYear
the start year of the rule, from MIN_VALUE to MAX_VALUE
- endYear
the end year of the rule, from MIN_VALUE to MAX_VALUE
- month
the month of the transition, not null
- dayOfMonthIndicator
the day-of-month of the transition, adjusted by dayOfWeek, from 1 to 31 adjusted later, or -1 to -28 adjusted earlier from the last day of the month
- dayOfWeek
the day-of-week to adjust to, null if day-of-month should not be adjusted
- time
the time that the transition occurs as defined by timeDefintion, not null
- timeEndOfDay
whether midnight is at the end of day
- timeDefinition
the definition of how to convert local to actual time, not null
- savingAmountSecs
the amount of saving from the standard offset after the transition in seconds
- returns
this, for chaining
- Exceptions thrown
DateTimeException
if a date-time field is out of rangeIllegalArgumentException
if the end of day midnight flag does not match the timeIllegalStateException
if the window has reached the maximum capacity of 2000 rules
-
def
addRuleToWindow(year: Int, month: Month, dayOfMonthIndicator: Int, time: LocalTime, timeEndOfDay: Boolean, timeDefinition: TimeDefinition, savingAmountSecs: Int): ZoneRulesBuilder
Adds a single transition rule to the current window.
Adds a single transition rule to the current window.
This adds a rule such that the offset, expressed as a daylight savings amount, changes at the specified date-time.
- year
the year of the transition, from MIN_VALUE to MAX_VALUE
- month
the month of the transition, not null
- dayOfMonthIndicator
the day-of-month of the transition, adjusted by dayOfWeek, from 1 to 31 adjusted later, or -1 to -28 adjusted earlier from the last day of the month
- time
the time that the transition occurs as defined by timeDefintion, not null
- timeEndOfDay
whether midnight is at the end of day
- timeDefinition
the definition of how to convert local to actual time, not null
- savingAmountSecs
the amount of saving from the standard offset after the transition in seconds
- returns
this, for chaining
- Exceptions thrown
DateTimeException
if a date-time field is out of rangeIllegalStateException
if the window has reached the maximum capacity of 2000 rules
-
def
addRuleToWindow(transitionDateTime: LocalDateTime, timeDefinition: TimeDefinition, savingAmountSecs: Int): ZoneRulesBuilder
Adds a single transition rule to the current window.
Adds a single transition rule to the current window.
This adds a rule such that the offset, expressed as a daylight savings amount, changes at the specified date-time.
- transitionDateTime
the date-time that the transition occurs as defined by timeDefintion, not null
- timeDefinition
the definition of how to convert local to actual time, not null
- savingAmountSecs
the amount of saving from the standard offset after the transition in seconds
- returns
this, for chaining
- Exceptions thrown
IllegalStateException
if the window has reached the maximum capacity of 2000 rules
-
def
addWindow(standardOffset: ZoneOffset, until: LocalDateTime, untilDefinition: TimeDefinition): ZoneRulesBuilder
Adds a window to the builder that can be used to filter a set of rules.
Adds a window to the builder that can be used to filter a set of rules.
This method defines and adds a window to the zone where the standard offset is specified. The window limits the effect of subsequent additions of transition rules or fixed savings. If neither rules or fixed savings are added to the window then the window will default to no savings.
Each window must be added sequentially, as the start instant of the window is derived from the until instant of the previous window.
- standardOffset
the standard offset, not null
- until
the date-time that the offset applies until, not null
- untilDefinition
the time type for the until date-time, not null
- returns
this, for chaining
- Exceptions thrown
IllegalStateException
if the window order is invalid
-
def
addWindowForever(standardOffset: ZoneOffset): ZoneRulesBuilder
Adds a window that applies until the end of time to the builder that can be used to filter a set of rules.
Adds a window that applies until the end of time to the builder that can be used to filter a set of rules.
This method defines and adds a window to the zone where the standard offset is specified. The window limits the effect of subsequent additions of transition rules or fixed savings. If neither rules or fixed savings are added to the window then the window will default to no savings.
This must be added after all other windows. No more windows can be added after this one.
- standardOffset
the standard offset, not null
- returns
this, for chaining
- Exceptions thrown
IllegalStateException
if a forever window has already been added
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
setFixedSavingsToWindow(fixedSavingAmountSecs: Int): ZoneRulesBuilder
Sets the previously added window to have fixed savings.
Sets the previously added window to have fixed savings.
Setting a window to have fixed savings simply means that a single daylight savings amount applies throughout the window. The window could be small, such as a single summer, or large, such as a multi-year daylight savings.
A window can either have fixed savings or rules but not both.
- fixedSavingAmountSecs
the amount of saving to use for the whole window, not null
- returns
this, for chaining
- Exceptions thrown
IllegalStateException
if the window already has rules
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toRules(zoneId: String): ZoneRules
Completes the build converting the builder to a set of time-zone rules.
Completes the build converting the builder to a set of time-zone rules.
Calling this method alters the state of the builder. Further rules should not be added to this builder once this method is called.
- zoneId
the time-zone ID, not null
- returns
the zone rules, not null
- Exceptions thrown
IllegalStateException
if there is only one rule defined as being forever for any given window
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )