A transition between two offsets is normally the result of a daylight savings cutover and the discontinuity is normally a gap in spring and an overlap in autumn and this, in turn, is caused by a discontinuity in the local timeline.
ZoneOffsetTransition’s function is to model the transition between these two offsets.
Note: The class is immutable and thread-safe
Methods:
Methods |
Description |
---|---|
createTransition(int year) |
This method creates a transition instance for the specified year. |
of(LocalDateTime transition, ZoneOffset offsetBefore, ZoneOffset offsetAfter) |
This is a static method used to retrieve the object of the transmission between the before and after offsets |
equals() |
This method is used to compare two ZoneOffsetTransition objects. |
compareTo() |
This method is used to compare two ZoneOffsetTransition objects |
hashCode() |
This method is used to retrieve the hash code of the current ZoneOffsetTransition object. |
getDateTimeAfter() |
This method returns a LocalDateTime object with the after offset applied. |
getDateTimeBefore() |
This method returns a LocalDateTime object with the before offset applied. |
getDuration() |
This method returns the duration object of the transition. |
getInstant() |
This method returns an Instant object of the first instant when the afteroffset is applied. |
getOffsetAfter() |
This method returns the ZoneOffset object after the transition. |
getOffsetBefore() |
This method returns the ZoneOffset object after the transition. |
isGap() |
This method returns whether the current transition represents a gap in the local time-line. |
isOverlap() |
This method returns whether the current transition represents an overlap in the local time-line. |
isValidOffset(ZoneOffset zoneOffset) |
This method checks whether the ZoneOffset object passed is a valid one or not. i.e returns true If the ZoneOffset object is valid at atleast one point. The ZoneOffset object passed will be a valid one if an overlap exists at either the before offset or after the offset. |
toEpochSecond() |
This method returns the transition instant as an epoch second(long value) |
toString() |
This method returns a String object describing the current ZoneOffsetTransition object. |
Below is the Java implementation of the ZoneOffsetTransition Class:
import java.io.*;
import java.time.*;
import java.time.chrono.*;
import java.time.zone.*;
import java.util.*;
public class GeeksForGeeks {
public static void main(String args[])
{
int year1 = 1996 , year2 = 2001 ;
// creating the offsets
ZoneOffset ofSet1 = ZoneOffset.ofTotalSeconds( 5 );
ZoneOffset ofSet2 = ZoneOffset.ofTotalSeconds( 2 );
// creating two transition zones
ZoneOffsetTransition z1 = ZoneOffsetTransition.of(
LocalDateTime.of(year1, 11 , 24 , 03 , 24 , 48 , 0 ),
ofSet1, ofSet2);
ZoneOffsetTransition z2 = ZoneOffsetTransition.of(
LocalDateTime.of(year2, 10 , 30 , 01 , 21 , 52 , 0 ),
ofSet1, ofSet2);
// checking for equality of
// the two transistion zones.
boolean ans = z1.equals(z2);
if (ans)
System.out.println(
"The transition zones match!" );
else
System.out.println(
"Sorry, the transition zones do not match!" );
// using the getOffsetAfter to find the
// offsetAfter of a transition zone
ZoneOffset zone = z1.getOffsetAfter();
System.out.println(
"The offsetAfter of the first transition zone is"
+ zone);
}
} |
Sorry, the transition zones do not match! The offsetAfter of the first transition zone is+00:00:02