Class BaseChronology

java.lang.Object
org.joda.time.Chronology
org.joda.time.chrono.BaseChronology
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
AssembledChronology

public abstract class BaseChronology extends Chronology implements 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
Author:
Brian S O'Neill
See Also:
  • Constructor Details

    • BaseChronology

      protected BaseChronology()
      Restricted constructor.
  • Method Details

    • 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:
    • getDateTimeMillis

      public long getDateTimeMillis(int year, int monthOfYear, int dayOfMonth, int millisOfDay) throws 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:
      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 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:
      IllegalArgumentException - if the values are invalid
    • getDateTimeMillis

      public long getDateTimeMillis(long instant, int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond) throws 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:
      IllegalArgumentException - if the values are invalid
    • validate

      public void validate(ReadablePartial partial, int[] values)
      Validates whether the fields stored in a partial instant are valid.

      This implementation uses DateTimeField.getMinimumValue(ReadablePartial, int[]) and DateTimeField.getMaximumValue(ReadablePartial, int[]).

      Specified by:
      validate in class Chronology
      Parameters:
      partial - the partial instant to validate
      values - the values to validate, not null unless the partial is empty
      Throws:
      IllegalArgumentException - if the instant is 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 String toString()
      Gets a debugging toString.
      Specified by:
      toString in class Chronology
      Returns:
      a debugging string