Class ZonedChronology

  • All Implemented Interfaces:
    java.io.Serializable

    public final class ZonedChronology
    extends AssembledChronology
    Wraps another Chronology to add support for time zones.

    ZonedChronology is thread-safe and immutable.

    Since:
    1.0
    See Also:
    Serialized Form
    • Field Detail

      • serialVersionUID

        private static final long serialVersionUID
        Serialization lock
        See Also:
        Constant Field Values
      • NEAR_ZERO

        private static final long NEAR_ZERO
        Avoid calculation errors near zero.
        See Also:
        Constant Field Values
    • Constructor Detail

      • ZonedChronology

        private ZonedChronology​(Chronology base,
                                DateTimeZone zone)
        Restricted constructor
        Parameters:
        base - base chronology to wrap
        zone - the time zone
    • Method Detail

      • getInstance

        public static ZonedChronology getInstance​(Chronology base,
                                                  DateTimeZone zone)
        Create a ZonedChronology for any chronology, overriding any time zone it may already have.
        Parameters:
        base - base chronology to wrap
        zone - the time zone
        Throws:
        java.lang.IllegalArgumentException - if chronology or time zone is null
      • useTimeArithmetic

        static boolean useTimeArithmetic​(DurationField field)
      • getZone

        public DateTimeZone getZone()
        Description copied from class: BaseChronology
        Returns the DateTimeZone that this Chronology operates in, or null if unspecified.
        Overrides:
        getZone in class AssembledChronology
        Returns:
        DateTimeZone null if unspecified
      • withUTC

        public Chronology withUTC()
        Description copied from class: BaseChronology
        Returns an instance of this Chronology that operates in the UTC time zone. Chronologies that do not operate in a time zone or are already UTC must return themselves.
        Specified by:
        withUTC in class BaseChronology
        Returns:
        a version of this chronology that ignores time zones
      • withZone

        public Chronology withZone​(DateTimeZone zone)
        Description copied from class: BaseChronology
        Returns an instance of this Chronology that operates in any time zone.
        Specified by:
        withZone in class BaseChronology
        Parameters:
        zone - to use, or default if null
        Returns:
        a version of this chronology with a specific time zone
        See Also:
        ZonedChronology
      • getDateTimeMillis

        public long getDateTimeMillis​(int year,
                                      int monthOfYear,
                                      int dayOfMonth,
                                      int millisOfDay)
                               throws java.lang.IllegalArgumentException
        Description copied from class: BaseChronology
        Returns a datetime millisecond instant, formed from the given year, month, day, and millisecond values. The set of given values must refer to a valid datetime, or else an IllegalArgumentException is thrown.

        The default implementation calls upon separate DateTimeFields to determine the result. Subclasses are encouraged to provide a more efficient implementation.

        Overrides:
        getDateTimeMillis in class AssembledChronology
        Parameters:
        year - year to use
        monthOfYear - month to use
        dayOfMonth - day of month to use
        millisOfDay - millisecond to use
        Returns:
        millisecond instant from 1970-01-01T00:00:00Z
        Throws:
        java.lang.IllegalArgumentException - if the values are invalid
      • getDateTimeMillis

        public long getDateTimeMillis​(int year,
                                      int monthOfYear,
                                      int dayOfMonth,
                                      int hourOfDay,
                                      int minuteOfHour,
                                      int secondOfMinute,
                                      int millisOfSecond)
                               throws java.lang.IllegalArgumentException
        Description copied from class: BaseChronology
        Returns a datetime millisecond instant, formed from the given year, month, day, hour, minute, second, and millisecond values. The set of given values must refer to a valid datetime, or else an IllegalArgumentException is thrown.

        The default implementation calls upon separate DateTimeFields to determine the result. Subclasses are encouraged to provide a more efficient implementation.

        Overrides:
        getDateTimeMillis in class AssembledChronology
        Parameters:
        year - year to use
        monthOfYear - month to use
        dayOfMonth - day of month to use
        hourOfDay - hour to use
        minuteOfHour - minute to use
        secondOfMinute - second to use
        millisOfSecond - millisecond to use
        Returns:
        millisecond instant from 1970-01-01T00:00:00Z
        Throws:
        java.lang.IllegalArgumentException - if the values are invalid
      • getDateTimeMillis

        public long getDateTimeMillis​(long instant,
                                      int hourOfDay,
                                      int minuteOfHour,
                                      int secondOfMinute,
                                      int millisOfSecond)
                               throws java.lang.IllegalArgumentException
        Description copied from class: BaseChronology
        Returns a datetime millisecond instant, from from the given instant, hour, minute, second, and millisecond values. The set of given values must refer to a valid datetime, or else an IllegalArgumentException is thrown.

        The default implementation calls upon separate DateTimeFields to determine the result. Subclasses are encouraged to provide a more efficient implementation.

        Overrides:
        getDateTimeMillis in class AssembledChronology
        Parameters:
        instant - instant to start from
        hourOfDay - hour to use
        minuteOfHour - minute to use
        secondOfMinute - second to use
        millisOfSecond - millisecond to use
        Returns:
        millisecond instant from 1970-01-01T00:00:00Z
        Throws:
        java.lang.IllegalArgumentException - if the values are invalid
      • localToUTC

        private long localToUTC​(long localInstant)
        Parameters:
        localInstant - the instant from 1970-01-01T00:00:00 local time
        Returns:
        the instant from 1970-01-01T00:00:00Z
      • assemble

        protected void assemble​(AssembledChronology.Fields fields)
        Description copied from class: AssembledChronology
        Invoked by the constructor and after deserialization to allow subclasses to define all of its supported fields. All unset fields default to unsupported instances.
        Specified by:
        assemble in class AssembledChronology
        Parameters:
        fields - container of fields
      • convertField

        private DurationField convertField​(DurationField field,
                                           java.util.HashMap<java.lang.Object,​java.lang.Object> converted)
      • convertField

        private DateTimeField convertField​(DateTimeField field,
                                           java.util.HashMap<java.lang.Object,​java.lang.Object> converted)
      • equals

        public boolean equals​(java.lang.Object obj)
        A zoned chronology is only equal to a zoned chronology with the same base chronology and zone.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        obj - the object to compare to
        Returns:
        true if equal
        Since:
        1.4
      • hashCode

        public int hashCode()
        A suitable hashcode for the chronology.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        the hashcode
        Since:
        1.4
      • toString

        public java.lang.String toString()
        A debugging string for the chronology.
        Specified by:
        toString in class BaseChronology
        Returns:
        the debugging string