Class BaseChronology

  • All Implemented Interfaces:
    java.io.Serializable
    Direct Known Subclasses:
    AssembledChronology

    public abstract class BaseChronology
    extends Chronology
    implements java.io.Serializable
    BaseChronology provides a skeleton implementation for chronology classes. Many utility methods are defined, but all fields are unsupported.

    BaseChronology is thread-safe and immutable, and all subclasses must be as well.

    Since:
    1.0
    See Also:
    Serialized Form
    • Method Detail

      • getZone

        public abstract DateTimeZone getZone()
        Returns the DateTimeZone that this Chronology operates in, or null if unspecified.
        Specified by:
        getZone in class Chronology
        Returns:
        DateTimeZone null if unspecified
      • withUTC

        public abstract Chronology withUTC()
        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 Chronology
        Returns:
        a version of this chronology that ignores time zones
      • withZone

        public abstract Chronology withZone​(DateTimeZone zone)
        Returns an instance of this Chronology that operates in any time zone.
        Specified by:
        withZone in class Chronology
        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
        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.

        Specified by:
        getDateTimeMillis in class Chronology
        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
        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.

        Specified by:
        getDateTimeMillis in class Chronology
        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
        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.

        Specified by:
        getDateTimeMillis in class Chronology
        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
      • get

        public int[] get​(ReadablePartial partial,
                         long instant)
        Gets the values of a partial from an instant.
        Specified by:
        get in class Chronology
        Parameters:
        partial - the partial instant to use
        instant - the instant to query
        Returns:
        the values of the partial extracted from the instant
      • set

        public long set​(ReadablePartial partial,
                        long instant)
        Sets the partial into the instant.
        Specified by:
        set in class Chronology
        Parameters:
        partial - the partial instant to use
        instant - the instant to update
        Returns:
        the updated instant
      • get

        public int[] get​(ReadablePeriod period,
                         long startInstant,
                         long endInstant)
        Gets the values of a period from an interval.
        Specified by:
        get in class Chronology
        Parameters:
        period - the period instant to use
        startInstant - the start instant of an interval to query
        endInstant - the start instant of an interval to query
        Returns:
        the values of the period extracted from the interval
      • get

        public int[] get​(ReadablePeriod period,
                         long duration)
        Gets the values of a period from an interval.
        Specified by:
        get in class Chronology
        Parameters:
        period - the period instant to use
        duration - the duration to query
        Returns:
        the values of the period extracted from the duration
      • add

        public long add​(ReadablePeriod period,
                        long instant,
                        int scalar)
        Adds the period to the instant, specifying the number of times to add.
        Specified by:
        add in class Chronology
        Parameters:
        period - the period to add, null means add nothing
        instant - the instant to add to
        scalar - the number of times to add
        Returns:
        the updated instant
      • add

        public long add​(long instant,
                        long duration,
                        int scalar)
        Adds the duration to the instant, specifying the number of times to add.
        Specified by:
        add in class Chronology
        Parameters:
        instant - the instant to add to
        duration - the duration to add
        scalar - the number of times to add
        Returns:
        the updated instant
      • millis

        public DurationField millis()
        Get the millis duration field for this chronology.
        Specified by:
        millis in class Chronology
        Returns:
        DurationField or UnsupportedDurationField if unsupported
      • millisOfSecond

        public DateTimeField millisOfSecond()
        Get the millis of second field for this chronology.
        Specified by:
        millisOfSecond in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • millisOfDay

        public DateTimeField millisOfDay()
        Get the millis of day field for this chronology.
        Specified by:
        millisOfDay in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • seconds

        public DurationField seconds()
        Get the seconds duration field for this chronology.
        Specified by:
        seconds in class Chronology
        Returns:
        DurationField or UnsupportedDurationField if unsupported
      • secondOfMinute

        public DateTimeField secondOfMinute()
        Get the second of minute field for this chronology.
        Specified by:
        secondOfMinute in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • secondOfDay

        public DateTimeField secondOfDay()
        Get the second of day field for this chronology.
        Specified by:
        secondOfDay in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • minutes

        public DurationField minutes()
        Get the minutes duration field for this chronology.
        Specified by:
        minutes in class Chronology
        Returns:
        DurationField or UnsupportedDurationField if unsupported
      • minuteOfHour

        public DateTimeField minuteOfHour()
        Get the minute of hour field for this chronology.
        Specified by:
        minuteOfHour in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • minuteOfDay

        public DateTimeField minuteOfDay()
        Get the minute of day field for this chronology.
        Specified by:
        minuteOfDay in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • hours

        public DurationField hours()
        Get the hours duration field for this chronology.
        Specified by:
        hours in class Chronology
        Returns:
        DurationField or UnsupportedDurationField if unsupported
      • hourOfDay

        public DateTimeField hourOfDay()
        Get the hour of day (0-23) field for this chronology.
        Specified by:
        hourOfDay in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • clockhourOfDay

        public DateTimeField clockhourOfDay()
        Get the hour of day (offset to 1-24) field for this chronology.
        Specified by:
        clockhourOfDay in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • halfdays

        public DurationField halfdays()
        Get the halfdays duration field for this chronology.
        Specified by:
        halfdays in class Chronology
        Returns:
        DurationField or UnsupportedDurationField if unsupported
      • hourOfHalfday

        public DateTimeField hourOfHalfday()
        Get the hour of am/pm (0-11) field for this chronology.
        Specified by:
        hourOfHalfday in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • clockhourOfHalfday

        public DateTimeField clockhourOfHalfday()
        Get the hour of am/pm (offset to 1-12) field for this chronology.
        Specified by:
        clockhourOfHalfday in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • halfdayOfDay

        public DateTimeField halfdayOfDay()
        Get the AM(0) PM(1) field for this chronology.
        Specified by:
        halfdayOfDay in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • days

        public DurationField days()
        Get the days duration field for this chronology.
        Specified by:
        days in class Chronology
        Returns:
        DurationField or UnsupportedDurationField if unsupported
      • dayOfWeek

        public DateTimeField dayOfWeek()
        Get the day of week field for this chronology.

        DayOfWeek values are defined in DateTimeConstants. They use the ISO definitions, where 1 is Monday and 7 is Sunday.

        Specified by:
        dayOfWeek in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • dayOfMonth

        public DateTimeField dayOfMonth()
        Get the day of month field for this chronology.
        Specified by:
        dayOfMonth in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • dayOfYear

        public DateTimeField dayOfYear()
        Get the day of year field for this chronology.
        Specified by:
        dayOfYear in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • weeks

        public DurationField weeks()
        Get the weeks duration field for this chronology.
        Specified by:
        weeks in class Chronology
        Returns:
        DurationField or UnsupportedDurationField if unsupported
      • weekOfWeekyear

        public DateTimeField weekOfWeekyear()
        Get the week of a week based year field for this chronology.
        Specified by:
        weekOfWeekyear in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • weekyears

        public DurationField weekyears()
        Get the weekyears duration field for this chronology.
        Specified by:
        weekyears in class Chronology
        Returns:
        DurationField or UnsupportedDurationField if unsupported
      • weekyear

        public DateTimeField weekyear()
        Get the year of a week based year field for this chronology.
        Specified by:
        weekyear in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • weekyearOfCentury

        public DateTimeField weekyearOfCentury()
        Get the year of a week based year in a century field for this chronology.
        Specified by:
        weekyearOfCentury in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • months

        public DurationField months()
        Get the months duration field for this chronology.
        Specified by:
        months in class Chronology
        Returns:
        DurationField or UnsupportedDurationField if unsupported
      • monthOfYear

        public DateTimeField monthOfYear()
        Get the month of year field for this chronology.
        Specified by:
        monthOfYear in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • years

        public DurationField years()
        Get the years duration field for this chronology.
        Specified by:
        years in class Chronology
        Returns:
        DurationField or UnsupportedDurationField if unsupported
      • year

        public DateTimeField year()
        Get the year field for this chronology.
        Specified by:
        year in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • yearOfEra

        public DateTimeField yearOfEra()
        Get the year of era field for this chronology.
        Specified by:
        yearOfEra in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • yearOfCentury

        public DateTimeField yearOfCentury()
        Get the year of century field for this chronology.
        Specified by:
        yearOfCentury in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • centuries

        public DurationField centuries()
        Get the centuries duration field for this chronology.
        Specified by:
        centuries in class Chronology
        Returns:
        DurationField or UnsupportedDurationField if unsupported
      • centuryOfEra

        public DateTimeField centuryOfEra()
        Get the century of era field for this chronology.
        Specified by:
        centuryOfEra in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • eras

        public DurationField eras()
        Get the eras duration field for this chronology.
        Specified by:
        eras in class Chronology
        Returns:
        DurationField or UnsupportedDurationField if unsupported
      • era

        public DateTimeField era()
        Get the era field for this chronology.
        Specified by:
        era in class Chronology
        Returns:
        DateTimeField or UnsupportedDateTimeField if unsupported
      • toString

        public abstract java.lang.String toString()
        Gets a debugging toString.
        Specified by:
        toString in class Chronology
        Returns:
        a debugging string