org.joda.time
Class Chronology

java.lang.Object
  extended by org.joda.time.Chronology
Direct Known Subclasses:
BaseChronology

public abstract class Chronology
extends Object

Chronology provides access to the individual date time fields for a chronological calendar system.

Various chronologies are supported by subclasses including ISO and GregorianJulian. To construct a Chronology you should use the factory methods on the chronology subclass in the chrono package.

For example, to obtain the current time in the coptic calendar system:

 DateTime dt = new DateTime(CopticChronology.getInstance());
 

The provided chronology implementations are:

Hopefully future releases will contain more chronologies.

This class defines a number of fields with names from the ISO8601 standard. It does not 'strongly' define these fields however, thus implementations are free to interpret the field names as they wish. For example, a week could be defined as 10 days and a month as 40 days in a special WeirdChronology implementation. Clearly the GJ and ISO implementations provided use the field names as you would expect.

Since:
1.0
Author:
Stephen Colebourne, Brian S O'Neill
See Also:
ISOChronology, GJChronology, GregorianChronology, JulianChronology, CopticChronology, BuddhistChronology, EthiopicChronology

Constructor Summary
Chronology()
           
 
Method Summary
abstract  long add(long instant, long duration, int scalar)
          Adds the duration to the instant, specifying the number of times to add.
abstract  long add(ReadablePeriod period, long instant, int scalar)
          Adds the period to the instant, specifying the number of times to add.
abstract  DurationField centuries()
          Get the centuries duration field for this chronology.
abstract  DateTimeField centuryOfEra()
          Get the century of era field for this chronology.
abstract  DateTimeField clockhourOfDay()
          Get the hour of day (offset to 1-24) field for this chronology.
abstract  DateTimeField clockhourOfHalfday()
          Get the hour of am/pm (offset to 1-12) field for this chronology.
abstract  DateTimeField dayOfMonth()
          Get the day of month field for this chronology.
abstract  DateTimeField dayOfWeek()
          Get the day of week field for this chronology.
abstract  DateTimeField dayOfYear()
          Get the day of year field for this chronology.
abstract  DurationField days()
          Get the days duration field for this chronology.
abstract  DateTimeField era()
          Get the era field for this chronology.
abstract  DurationField eras()
          Get the eras duration field for this chronology.
abstract  int[] get(ReadablePartial partial, long instant)
          Gets the values of a partial from an instant.
abstract  int[] get(ReadablePeriod period, long duration)
          Gets the values of a period from an interval.
abstract  int[] get(ReadablePeriod period, long startInstant, long endInstant)
          Gets the values of a period from an interval.
abstract  long getDateTimeMillis(int year, int monthOfYear, int dayOfMonth, int millisOfDay)
          Returns a datetime millisecond instant, formed from the given year, month, day, and millisecond values.
abstract  long getDateTimeMillis(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond)
          Returns a datetime millisecond instant, formed from the given year, month, day, hour, minute, second, and millisecond values.
abstract  long getDateTimeMillis(long instant, int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond)
          Returns a datetime millisecond instant, from from the given instant, hour, minute, second, and millisecond values.
abstract  DateTimeZone getZone()
          Returns the DateTimeZone that this Chronology operates in, or null if unspecified.
abstract  DateTimeField halfdayOfDay()
          Get the AM(0) PM(1) field for this chronology.
abstract  DurationField halfdays()
          Get the halfdays duration field for this chronology.
abstract  DateTimeField hourOfDay()
          Get the hour of day (0-23) field for this chronology.
abstract  DateTimeField hourOfHalfday()
          Get the hour of am/pm (0-11) field for this chronology.
abstract  DurationField hours()
          Get the hours duration field for this chronology.
abstract  DurationField millis()
          Get the millis duration field for this chronology.
abstract  DateTimeField millisOfDay()
          Get the millis of day field for this chronology.
abstract  DateTimeField millisOfSecond()
          Get the millis of second field for this chronology.
abstract  DateTimeField minuteOfDay()
          Get the minute of day field for this chronology.
abstract  DateTimeField minuteOfHour()
          Get the minute of hour field for this chronology.
abstract  DurationField minutes()
          Get the minutes duration field for this chronology.
abstract  DateTimeField monthOfYear()
          Get the month of year field for this chronology.
abstract  DurationField months()
          Get the months duration field for this chronology.
abstract  DateTimeField secondOfDay()
          Get the second of day field for this chronology.
abstract  DateTimeField secondOfMinute()
          Get the second of minute field for this chronology.
abstract  DurationField seconds()
          Get the seconds duration field for this chronology.
abstract  long set(ReadablePartial partial, long instant)
          Sets the partial into the instant.
abstract  String toString()
          Gets a debugging toString.
abstract  void validate(ReadablePartial partial, int[] values)
          Validates whether the values are valid for the fields of a partial instant.
abstract  DateTimeField weekOfWeekyear()
          Get the week of a week based year field for this chronology.
abstract  DurationField weeks()
          Get the weeks duration field for this chronology.
abstract  DateTimeField weekyear()
          Get the year of a week based year field for this chronology.
abstract  DateTimeField weekyearOfCentury()
          Get the year of a week based year in a century field for this chronology.
abstract  DurationField weekyears()
          Get the weekyears duration field for this chronology.
abstract  Chronology withUTC()
          Returns an instance of this Chronology that operates in the UTC time zone.
abstract  Chronology withZone(DateTimeZone zone)
          Returns an instance of this Chronology that operates in any time zone.
abstract  DateTimeField year()
          Get the year field for this chronology.
abstract  DateTimeField yearOfCentury()
          Get the year of century field for this chronology.
abstract  DateTimeField yearOfEra()
          Get the year of era field for this chronology.
abstract  DurationField years()
          Get the years duration field for this chronology.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Chronology

public Chronology()
Method Detail

getZone

public abstract DateTimeZone getZone()
Returns the DateTimeZone that this Chronology operates in, or null if unspecified.

Returns:
the 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 themself.

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.

Parameters:
zone - to use, or default if null
Returns:
a version of this chronology with a specific time zone
See Also:
ZonedChronology

getDateTimeMillis

public abstract long getDateTimeMillis(int year,
                                       int monthOfYear,
                                       int dayOfMonth,
                                       int millisOfDay)
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.

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 abstract long getDateTimeMillis(int year,
                                       int monthOfYear,
                                       int dayOfMonth,
                                       int hourOfDay,
                                       int minuteOfHour,
                                       int secondOfMinute,
                                       int millisOfSecond)
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.

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 abstract long getDateTimeMillis(long instant,
                                       int hourOfDay,
                                       int minuteOfHour,
                                       int secondOfMinute,
                                       int millisOfSecond)
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.

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 abstract void validate(ReadablePartial partial,
                              int[] values)
Validates whether the values are valid for the fields of a partial instant.

Parameters:
partial - the partial instant to validate
values - the values to validate, not null, match fields in partial
Throws:
IllegalArgumentException - if the instant is invalid

get

public abstract int[] get(ReadablePartial partial,
                          long instant)
Gets the values of a partial from an instant.

Parameters:
partial - the partial instant to use
instant - the instant to query
Returns:
the values of this partial extracted from the instant

set

public abstract long set(ReadablePartial partial,
                         long instant)
Sets the partial into the instant.

Parameters:
partial - the partial instant to use
instant - the instant to update
Returns:
the updated instant

get

public abstract int[] get(ReadablePeriod period,
                          long startInstant,
                          long endInstant)
Gets the values of a period from an interval.

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 abstract int[] get(ReadablePeriod period,
                          long duration)
Gets the values of a period from an interval.

Parameters:
period - the period instant to use
duration - the duration to query
Returns:
the values of the period extracted from the duration

add

public abstract long add(ReadablePeriod period,
                         long instant,
                         int scalar)
Adds the period to the instant, specifying the number of times to add.

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 abstract long add(long instant,
                         long duration,
                         int scalar)
Adds the duration to the instant, specifying the number of times to add.

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 abstract DurationField millis()
Get the millis duration field for this chronology.

Returns:
DurationField or UnsupportedDurationField if unsupported

millisOfSecond

public abstract DateTimeField millisOfSecond()
Get the millis of second field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

millisOfDay

public abstract DateTimeField millisOfDay()
Get the millis of day field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

seconds

public abstract DurationField seconds()
Get the seconds duration field for this chronology.

Returns:
DurationField or UnsupportedDurationField if unsupported

secondOfMinute

public abstract DateTimeField secondOfMinute()
Get the second of minute field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

secondOfDay

public abstract DateTimeField secondOfDay()
Get the second of day field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

minutes

public abstract DurationField minutes()
Get the minutes duration field for this chronology.

Returns:
DurationField or UnsupportedDurationField if unsupported

minuteOfHour

public abstract DateTimeField minuteOfHour()
Get the minute of hour field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

minuteOfDay

public abstract DateTimeField minuteOfDay()
Get the minute of day field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

hours

public abstract DurationField hours()
Get the hours duration field for this chronology.

Returns:
DurationField or UnsupportedDurationField if unsupported

hourOfDay

public abstract DateTimeField hourOfDay()
Get the hour of day (0-23) field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

clockhourOfDay

public abstract DateTimeField clockhourOfDay()
Get the hour of day (offset to 1-24) field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

halfdays

public abstract DurationField halfdays()
Get the halfdays duration field for this chronology.

Returns:
DurationField or UnsupportedDurationField if unsupported

hourOfHalfday

public abstract DateTimeField hourOfHalfday()
Get the hour of am/pm (0-11) field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

clockhourOfHalfday

public abstract DateTimeField clockhourOfHalfday()
Get the hour of am/pm (offset to 1-12) field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

halfdayOfDay

public abstract DateTimeField halfdayOfDay()
Get the AM(0) PM(1) field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

days

public abstract DurationField days()
Get the days duration field for this chronology.

Returns:
DurationField or UnsupportedDurationField if unsupported

dayOfWeek

public abstract 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.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

dayOfMonth

public abstract DateTimeField dayOfMonth()
Get the day of month field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

dayOfYear

public abstract DateTimeField dayOfYear()
Get the day of year field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

weeks

public abstract DurationField weeks()
Get the weeks duration field for this chronology.

Returns:
DurationField or UnsupportedDurationField if unsupported

weekOfWeekyear

public abstract DateTimeField weekOfWeekyear()
Get the week of a week based year field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

weekyears

public abstract DurationField weekyears()
Get the weekyears duration field for this chronology.

Returns:
DurationField or UnsupportedDurationField if unsupported

weekyear

public abstract DateTimeField weekyear()
Get the year of a week based year field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

weekyearOfCentury

public abstract DateTimeField weekyearOfCentury()
Get the year of a week based year in a century field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

months

public abstract DurationField months()
Get the months duration field for this chronology.

Returns:
DurationField or UnsupportedDurationField if unsupported

monthOfYear

public abstract DateTimeField monthOfYear()
Get the month of year field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

years

public abstract DurationField years()
Get the years duration field for this chronology.

Returns:
DurationField or UnsupportedDurationField if unsupported

year

public abstract DateTimeField year()
Get the year field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

yearOfEra

public abstract DateTimeField yearOfEra()
Get the year of era field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

yearOfCentury

public abstract DateTimeField yearOfCentury()
Get the year of century field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

centuries

public abstract DurationField centuries()
Get the centuries duration field for this chronology.

Returns:
DurationField or UnsupportedDurationField if unsupported

centuryOfEra

public abstract DateTimeField centuryOfEra()
Get the century of era field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

eras

public abstract DurationField eras()
Get the eras duration field for this chronology.

Returns:
DurationField or UnsupportedDurationField if unsupported

era

public abstract DateTimeField era()
Get the era field for this chronology.

Returns:
DateTimeField or UnsupportedDateTimeField if unsupported

toString

public abstract String toString()
Gets a debugging toString.

Overrides:
toString in class Object
Returns:
a debugging string


Copyright © 2002-2012 Joda.org. All Rights Reserved.