Added in API level 26

ZoneOffsetTransitionRule

public final class ZoneOffsetTransitionRule
extends Object implements Serializable

java.lang.Object
   ↳ java.time.zone.ZoneOffsetTransitionRule


A rule expressing how to create a transition.

This class allows rules for identifying future transitions to be expressed. A rule might be written in many forms:

  • the 16th March
  • the Sunday on or after the 16th March
  • the Sunday on or before the 16th March
  • the last Sunday in February
These different rule types can be expressed and queried.

Summary

Public methods

ZoneOffsetTransition createTransition(int year)

Creates a transition instance for the specified year.

boolean equals(Object otherRule)

Checks if this object equals another.

int getDayOfMonthIndicator()

Gets the indicator of the day-of-month of the transition.

DayOfWeek getDayOfWeek()

Gets the day-of-week of the transition.

LocalTime getLocalTime()

Gets the local time of day of the transition which must be checked with isMidnightEndOfDay().

Month getMonth()

Gets the month of the transition.

ZoneOffset getOffsetAfter()

Gets the offset after the transition.

ZoneOffset getOffsetBefore()

Gets the offset before the transition.

ZoneOffset getStandardOffset()

Gets the standard offset in force at the transition.

ZoneOffsetTransitionRule.TimeDefinition getTimeDefinition()

Gets the time definition, specifying how to convert the time to an instant.

int hashCode()

Returns a suitable hash code.

boolean isMidnightEndOfDay()

Is the transition local time midnight at the end of day.

static ZoneOffsetTransitionRule of(Month month, int dayOfMonthIndicator, DayOfWeek dayOfWeek, LocalTime time, boolean timeEndOfDay, ZoneOffsetTransitionRule.TimeDefinition timeDefinition, ZoneOffset standardOffset, ZoneOffset offsetBefore, ZoneOffset offsetAfter)

Obtains an instance defining the yearly rule to create transitions between two offsets.

String toString()

Returns a string describing this object.

Inherited methods

Public methods

createTransition

Added in API level 26
public ZoneOffsetTransition createTransition (int year)

Creates a transition instance for the specified year.

Calculations are performed using the ISO-8601 chronology.

Parameters
year int: the year to create a transition for, not null

Returns
ZoneOffsetTransition the transition instance, not null

equals

Added in API level 26
public boolean equals (Object otherRule)

Checks if this object equals another.

The entire state of the object is compared.

Parameters
otherRule Object: the other object to compare to, null returns false

Returns
boolean true if equal

getDayOfMonthIndicator

Added in API level 26
public int getDayOfMonthIndicator ()

Gets the indicator of the day-of-month of the transition.

If the rule defines an exact date then the day is the month of that date.

If the rule defines a week where the transition might occur, then the day defines either the start of the end of the transition week.

If the value is positive, then it represents a normal day-of-month, and is the earliest possible date that the transition can be. The date may refer to 29th February which should be treated as 1st March in non-leap years.

If the value is negative, then it represents the number of days back from the end of the month where -1 is the last day of the month. In this case, the day identified is the latest possible date that the transition can be.

Returns
int the day-of-month indicator, from -28 to 31 excluding 0

getDayOfWeek

Added in API level 26
public DayOfWeek getDayOfWeek ()

Gets the day-of-week of the transition.

If the rule defines an exact date then this returns null.

If the rule defines a week where the cutover might occur, then this method returns the day-of-week that the month-day will be adjusted to. If the day is positive then the adjustment is later. If the day is negative then the adjustment is earlier.

Returns
DayOfWeek the day-of-week that the transition occurs, null if the rule defines an exact date

getLocalTime

Added in API level 26
public LocalTime getLocalTime ()

Gets the local time of day of the transition which must be checked with isMidnightEndOfDay().

The time is converted into an instant using the time definition.

Returns
LocalTime the local time of day of the transition, not null

getMonth

Added in API level 26
public Month getMonth ()

Gets the month of the transition.

If the rule defines an exact date then the month is the month of that date.

If the rule defines a week where the transition might occur, then the month if the month of either the earliest or latest possible date of the cutover.

Returns
Month the month of the transition, not null

getOffsetAfter

Added in API level 26
public ZoneOffset getOffsetAfter ()

Gets the offset after the transition.

Returns
ZoneOffset the offset after, not null

getOffsetBefore

Added in API level 26
public ZoneOffset getOffsetBefore ()

Gets the offset before the transition.

Returns
ZoneOffset the offset before, not null

getStandardOffset

Added in API level 26
public ZoneOffset getStandardOffset ()

Gets the standard offset in force at the transition.

Returns
ZoneOffset the standard offset, not null

getTimeDefinition

Added in API level 26
public ZoneOffsetTransitionRule.TimeDefinition getTimeDefinition ()

Gets the time definition, specifying how to convert the time to an instant.

The local time can be converted to an instant using the standard offset, the wall offset or UTC.

Returns
ZoneOffsetTransitionRule.TimeDefinition the time definition, not null

hashCode

Added in API level 26
public int hashCode ()

Returns a suitable hash code.

Returns
int the hash code

isMidnightEndOfDay

Added in API level 26
public boolean isMidnightEndOfDay ()

Is the transition local time midnight at the end of day.

The transition may be represented as occurring at 24:00.

Returns
boolean whether a local time of midnight is at the start or end of the day

of

Added in API level 26
public static ZoneOffsetTransitionRule of (Month month, 
                int dayOfMonthIndicator, 
                DayOfWeek dayOfWeek, 
                LocalTime time, 
                boolean timeEndOfDay, 
                ZoneOffsetTransitionRule.TimeDefinition timeDefinition, 
                ZoneOffset standardOffset, 
                ZoneOffset offsetBefore, 
                ZoneOffset offsetAfter)

Obtains an instance defining the yearly rule to create transitions between two offsets.

Applications should normally obtain an instance from ZoneRules. This factory is only intended for use when creating ZoneRules.

Parameters
month Month: the month of the month-day of the first day of the cutover week, not null

dayOfMonthIndicator int: the day of the month-day of the cutover week, positive if the week is that day or later, negative if the week is that day or earlier, counting from the last day of the month, from -28 to 31 excluding 0

dayOfWeek DayOfWeek: the required day-of-week, null if the month-day should not be changed

time LocalTime: the cutover time in the 'before' offset, not null

timeEndOfDay boolean: whether the time is midnight at the end of day

timeDefinition ZoneOffsetTransitionRule.TimeDefinition: how to interpret the cutover

standardOffset ZoneOffset: the standard offset in force at the cutover, not null

offsetBefore ZoneOffset: the offset before the cutover, not null

offsetAfter ZoneOffset: the offset after the cutover, not null

Returns
ZoneOffsetTransitionRule the rule, not null

Throws
IllegalArgumentException if the day of month indicator is invalid
IllegalArgumentException if the end of day flag is true when the time is not midnight
IllegalArgumentException if time.getNano() returns non-zero value

toString

Added in API level 26
public String toString ()

Returns a string describing this object.

Returns
String a string for debugging, not null