Class FixedDateTimeZone

  • All Implemented Interfaces:
    java.io.Serializable

    public final class FixedDateTimeZone
    extends DateTimeZone
    Basic DateTimeZone implementation that has a fixed name key and offsets.

    FixedDateTimeZone is thread-safe and immutable.

    Since:
    1.0
    Author:
    Brian S O'Neill
    See Also:
    Serialized Form
    • Constructor Detail

      • FixedDateTimeZone

        public FixedDateTimeZone​(java.lang.String id,
                                 java.lang.String nameKey,
                                 int wallOffset,
                                 int standardOffset)
    • Method Detail

      • getNameKey

        public java.lang.String getNameKey​(long instant)
        Description copied from class: DateTimeZone
        Returns a non-localized name that is unique to this time zone. It can be combined with id to form a unique key for fetching localized names.
        Specified by:
        getNameKey in class DateTimeZone
        Parameters:
        instant - milliseconds from 1970-01-01T00:00:00Z to get the name for
        Returns:
        name key or null if id should be used for names
      • getOffset

        public int getOffset​(long instant)
        Description copied from class: DateTimeZone
        Gets the millisecond offset to add to UTC to get local time.
        Specified by:
        getOffset in class DateTimeZone
        Parameters:
        instant - milliseconds from 1970-01-01T00:00:00Z to get the offset for
        Returns:
        the millisecond offset to add to UTC to get local time
      • getStandardOffset

        public int getStandardOffset​(long instant)
        Description copied from class: DateTimeZone
        Gets the standard millisecond offset to add to UTC to get local time, when standard time is in effect.
        Specified by:
        getStandardOffset in class DateTimeZone
        Parameters:
        instant - milliseconds from 1970-01-01T00:00:00Z to get the offset for
        Returns:
        the millisecond offset to add to UTC to get local time
      • getOffsetFromLocal

        public int getOffsetFromLocal​(long instantLocal)
        Description copied from class: DateTimeZone
        Gets the millisecond offset to subtract from local time to get UTC time. This offset can be used to undo adding the offset obtained by getOffset.
         millisLocal == millisUTC   + getOffset(millisUTC)
         millisUTC   == millisLocal - getOffsetFromLocal(millisLocal)
         
        NOTE: After calculating millisLocal, some error may be introduced. At offset transitions (due to DST or other historical changes), ranges of local times may map to different UTC times.

        This method will return an offset suitable for calculating an instant after any DST gap. For example, consider a zone with a cutover from 01:00 to 01:59:
        Input: 00:00 Output: 00:00
        Input: 00:30 Output: 00:30
        Input: 01:00 Output: 02:00
        Input: 01:30 Output: 02:30
        Input: 02:00 Output: 02:00
        Input: 02:30 Output: 02:30

        NOTE: The behaviour of this method changed in v1.5, with the emphasis on returning a consistent result later along the time-line (shown above).

        Overrides:
        getOffsetFromLocal in class DateTimeZone
        Parameters:
        instantLocal - the millisecond instant, relative to this time zone, to get the offset for
        Returns:
        the millisecond offset to subtract from local time to get UTC time
      • isFixed

        public boolean isFixed()
        Description copied from class: DateTimeZone
        Returns true if this time zone has no transitions.
        Specified by:
        isFixed in class DateTimeZone
        Returns:
        true if no transitions
      • nextTransition

        public long nextTransition​(long instant)
        Description copied from class: DateTimeZone
        Advances the given instant to where the time zone offset or name changes. If the instant returned is exactly the same as passed in, then no changes occur after the given instant.
        Specified by:
        nextTransition in class DateTimeZone
        Parameters:
        instant - milliseconds from 1970-01-01T00:00:00Z
        Returns:
        milliseconds from 1970-01-01T00:00:00Z
      • previousTransition

        public long previousTransition​(long instant)
        Description copied from class: DateTimeZone
        Retreats the given instant to where the time zone offset or name changes. If the instant returned is exactly the same as passed in, then no changes occur before the given instant.
        Specified by:
        previousTransition in class DateTimeZone
        Parameters:
        instant - milliseconds from 1970-01-01T00:00:00Z
        Returns:
        milliseconds from 1970-01-01T00:00:00Z
      • toTimeZone

        public java.util.TimeZone toTimeZone()
        Override to return the correct timzone instance.
        Overrides:
        toTimeZone in class DateTimeZone
        Returns:
        the closest matching TimeZone object
        Since:
        1.5
      • equals

        public boolean equals​(java.lang.Object obj)
        Description copied from class: DateTimeZone
        Compare this datetime zone with another.
        Specified by:
        equals in class DateTimeZone
        Parameters:
        obj - the object to compare with
        Returns:
        true if equal, based on the ID and all internal rules
      • hashCode

        public int hashCode()
        Description copied from class: DateTimeZone
        Gets a hash code compatable with equals.
        Overrides:
        hashCode in class DateTimeZone
        Returns:
        suitable hashcode