Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.joda.time.chrono
Class GJChronology

    java.lang.Object
      org.joda.time.Chronology
          org.joda.time.chrono.BaseChronology
              org.joda.time.chrono.AssembledChronology
                  org.joda.time.chrono.GJChronology

All Implemented Interfaces:
  java.io.Serializable

    public final class GJChronology

extends AssembledChronology

Implements the Gregorian/Julian calendar system which is the calendar system used in most of the world. Wherever possible, it is recommended to use the `ISOChronology` instead.

The Gregorian calendar replaced the Julian calendar, and the point in time when this chronology switches can be controlled using the second parameter of the getInstance method. By default this cutover is set to the date the Gregorian calendar was first instituted, October 15, 1582.

Before this date, this chronology uses the proleptic Julian calendar (proleptic means extending indefinitely). The Julian calendar has leap years every four years, whereas the Gregorian has special rules for 100 and 400 years. A meaningful result will thus be obtained for all input values. However before 8 CE, Julian leap years were irregular, and before 45 BCE there was no Julian calendar.

This chronology differs from `GregorianCalendar` in that years in BCE are returned correctly. Thus year 1 BCE is returned as -1 instead of 1. The yearOfEra field produces results compatible with GregorianCalendar.

The Julian calendar does not have a year zero, and so year -1 is followed by year 1. If the Gregorian cutover date is specified at or before year -1 (Julian), year zero is defined. In other words, the proleptic Gregorian chronology used by this class has a year zero.

To create a pure proleptic Julian chronology, use `JulianChronology`, and to create a pure proleptic Gregorian chronology, use `GregorianChronology`.

GJChronology is thread-safe and immutable.

Since:
  1.0
Author:
  Brian S O'Neill, Stephen Colebourne
See Also:
  Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from class org.joda.time.chrono.AssembledChronology
`AssembledChronology.Fields`

Method Summary
`protected void` | `assemble(AssembledChronology.Fields fields)` Invoked by the constructor and after deserialization to allow subclasses to define all of its supported fields.
`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.
`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.
`Instant` | `getGregorianCutover()` Gets the cutover instant between Gregorian and Julian chronologies.
`static GJChronology` | `getInstance()` Factory method returns instances of the default GJ cutover chronology.
`static GJChronology` | `getInstance(DateTimeZone zone)` Factory method returns instances of the GJ cutover chronology.
`static GJChronology` | `getInstance(DateTimeZone zone, long gregorianCutover, int minDaysInFirstWeek)` Factory method returns instances of the GJ cutover chronology.
`static GJChronology` | `getInstance(DateTimeZone zone, ReadableInstant gregorianCutover)` Factory method returns instances of the GJ cutover chronology.
`static GJChronology` | `getInstance(DateTimeZone zone, ReadableInstant gregorianCutover, int minDaysInFirstWeek)` Factory method returns instances of the GJ cutover chronology.
`static GJChronology` | `getInstanceUTC()` Factory method returns instances of the default GJ cutover chronology.
`int` | `getMinimumDaysInFirstWeek()` Gets the minimum days needed for a week to be the first week in a year.
`DateTimeZone` | `getZone()` Returns the DateTimeZone that this Chronology operates in, or null if unspecified.
`java.lang.String` | `toString()` Gets a debugging toString.
`Chronology` | `withUTC()` Gets the Chronology in the UTC time zone.
`Chronology` | `withZone(DateTimeZone zone)` Gets the Chronology in a specific time zone.

Methods inherited from class org.joda.time.chrono.AssembledChronology
`centuries, centuryOfEra, clockhourOfDay, clockhourOfHalfday, dayOfMonth, dayOfWeek, dayOfYear, days, era, eras, getBase, getDateTimeMillis, getParam, halfdayOfDay, halfdays, hourOfDay, hourOfHalfday, hours, millis, millisOfDay, millisOfSecond, minuteOfDay, minuteOfHour, minutes, monthOfYear, months, secondOfDay, secondOfMinute, seconds, weekOfWeekyear, weeks, weekyear, weekyearOfCentury, weekyears, year, yearOfCentury, yearOfEra, years`

Methods inherited from class org.joda.time.chrono.BaseChronology
`add, add, get, get, get, set, validate`

Methods inherited from class org.joda.time.Chronology
`getBuddhist, getBuddhist, getBuddhistUTC, getCoptic, getCoptic, getCopticUTC, getGJ, getGJ, getGJUTC, getGregorian, getGregorian, getGregorianUTC, getISO, getISO, getISOUTC, getJulian, getJulian, getJulianUTC`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Method Detail

### getInstanceUTC

    public static GJChronology getInstanceUTC()

  Factory method returns instances of the default GJ cutover chronology. This uses a cutover date of October 15, 1582 (Gregorian) 00:00:00 UTC. For this value, October 4, 1582 (Julian) is followed by October 15, 1582 (Gregorian).

  The first day of the week is designated to be `Monday`, and the minimum days in the first week of the year is 4.

  The time zone of the returned instance is UTC.

### getInstance

    public static GJChronology getInstance()

  Factory method returns instances of the default GJ cutover chronology. This uses a cutover date of October 15, 1582 (Gregorian) 00:00:00 UTC. For this value, October 4, 1582 (Julian) is followed by October 15, 1582 (Gregorian).

  The first day of the week is designated to be `Monday`, and the minimum days in the first week of the year is 4.

  The returned chronology is in the default time zone.

### getInstance

    public static GJChronology getInstance(DateTimeZone zone)

  Factory method returns instances of the GJ cutover chronology. This uses a cutover date of October 15, 1582 (Gregorian) 00:00:00 UTC. For this value, October 4, 1582 (Julian) is followed by October 15, 1582 (Gregorian).

  The first day of the week is designated to be `Monday`, and the minimum days in the first week of the year is 4.

  Parameters:
    `zone` - the time zone to use, null is default

### getInstance

    public static GJChronology getInstance(DateTimeZone zone,
                                           ReadableInstant gregorianCutover)

  Factory method returns instances of the GJ cutover chronology. Any cutover date may be specified.

  The first day of the week is designated to be `Monday`, and the minimum days in the first week of the year is 4.

  Parameters:
    `zone` - the time zone to use, null is default
    `gregorianCutover` - the cutover to use, null means default

### getInstance

    public static GJChronology getInstance(DateTimeZone zone,
                                           ReadableInstant gregorianCutover,
                                           int minDaysInFirstWeek)

  Factory method returns instances of the GJ cutover chronology. Any cutover date may be specified.

  Parameters:
    `zone` - the time zone to use, null is default
    `gregorianCutover` - the cutover to use, null means default
    `minDaysInFirstWeek` - minimum number of days in first week of the year; default is 4

### getInstance

    public static GJChronology getInstance(DateTimeZone zone,
                                           long gregorianCutover,
                                           int minDaysInFirstWeek)

  Factory method returns instances of the GJ cutover chronology. Any cutover date may be specified.

  Parameters:
    `zone` - the time zone to use, null is default
    `gregorianCutover` - the cutover to use
    `minDaysInFirstWeek` - minimum number of days in first week of the year; default is 4

### 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()

  Gets the Chronology in the UTC time zone.

  Specified by:
    `withUTC` in class `BaseChronology`
  Returns:
    the chronology in UTC

### withZone

    public Chronology withZone(DateTimeZone zone)

  Gets the Chronology in a specific time zone.

  Specified by:
    `withZone` in class `BaseChronology`
  Parameters:
    `zone` - the zone to get the chronology in, null is default
  Returns:
    the chronology
  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

### getGregorianCutover

    public Instant getGregorianCutover()

  Gets the cutover instant between Gregorian and Julian chronologies.

  Returns:
    the cutover instant

### getMinimumDaysInFirstWeek

    public int getMinimumDaysInFirstWeek()

  Gets the minimum days needed for a week to be the first week in a year.

  Returns:
    the minimum days

### toString

    public java.lang.String toString()

  Gets a debugging toString.

  Specified by:
    `toString` in class `BaseChronology`
  Returns:
    a debugging string

### 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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD