Class BaseDateTime

All Implemented Interfaces:
Serializable, Comparable<ReadableInstant>, ReadableDateTime, ReadableInstant
Direct Known Subclasses:
DateMidnight, DateTime, MutableDateTime

public abstract class BaseDateTime extends AbstractDateTime implements ReadableDateTime, Serializable
BaseDateTime is an abstract implementation of ReadableDateTime that stores data in long and Chronology fields.

This class should generally not be used directly by API users. The ReadableDateTime interface should be used when different kinds of date/time objects are to be referenced.

BaseDateTime subclasses may be mutable and not thread-safe.

Since:
1.0
Author:
Stephen Colebourne, Kandarp Shah, Brian S O'Neill
See Also:
  • Constructor Details

    • BaseDateTime

      public BaseDateTime()
      Constructs an instance set to the current system millisecond time using ISOChronology in the default time zone.
    • BaseDateTime

      public BaseDateTime(DateTimeZone zone)
      Constructs an instance set to the current system millisecond time using ISOChronology in the specified time zone.

      If the specified time zone is null, the default zone is used.

      Parameters:
      zone - the time zone, null means default zone
    • BaseDateTime

      public BaseDateTime(Chronology chronology)
      Constructs an instance set to the current system millisecond time using the specified chronology.

      If the chronology is null, ISOChronology in the default time zone is used.

      Parameters:
      chronology - the chronology, null means ISOChronology in default zone
    • BaseDateTime

      public BaseDateTime(long instant)
      Constructs an instance set to the milliseconds from 1970-01-01T00:00:00Z using ISOChronology in the default time zone.
      Parameters:
      instant - the milliseconds from 1970-01-01T00:00:00Z
    • BaseDateTime

      public BaseDateTime(long instant, DateTimeZone zone)
      Constructs an instance set to the milliseconds from 1970-01-01T00:00:00Z using ISOChronology in the specified time zone.

      If the specified time zone is null, the default zone is used.

      Parameters:
      instant - the milliseconds from 1970-01-01T00:00:00Z
      zone - the time zone, null means default zone
    • BaseDateTime

      public BaseDateTime(long instant, Chronology chronology)
      Constructs an instance set to the milliseconds from 1970-01-01T00:00:00Z using the specified chronology.

      If the chronology is null, ISOChronology in the default time zone is used.

      Parameters:
      instant - the milliseconds from 1970-01-01T00:00:00Z
      chronology - the chronology, null means ISOChronology in default zone
    • BaseDateTime

      public BaseDateTime(Object instant, DateTimeZone zone)
      Constructs an instance from an Object that represents a datetime, forcing the time zone to that specified.

      If the object contains no chronology, ISOChronology is used. If the specified time zone is null, the default zone is used.

      The recognised object types are defined in ConverterManager and include ReadableInstant, String, Calendar and Date.

      Parameters:
      instant - the datetime object
      zone - the time zone
      Throws:
      IllegalArgumentException - if the instant is invalid
    • BaseDateTime

      public BaseDateTime(Object instant, Chronology chronology)
      Constructs an instance from an Object that represents a datetime, using the specified chronology.

      If the chronology is null, ISO in the default time zone is used.

      The recognised object types are defined in ConverterManager and include ReadableInstant, String, Calendar and Date.

      Parameters:
      instant - the datetime object
      chronology - the chronology
      Throws:
      IllegalArgumentException - if the instant is invalid
    • BaseDateTime

      public BaseDateTime(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond)
      Constructs an instance from datetime field values using ISOChronology in the default time zone.
      Parameters:
      year - the year
      monthOfYear - the month of the year
      dayOfMonth - the day of the month
      hourOfDay - the hour of the day
      minuteOfHour - the minute of the hour
      secondOfMinute - the second of the minute
      millisOfSecond - the millisecond of the second
    • BaseDateTime

      public BaseDateTime(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond, DateTimeZone zone)
      Constructs an instance from datetime field values using ISOChronology in the specified time zone.

      If the specified time zone is null, the default zone is used.

      Parameters:
      year - the year
      monthOfYear - the month of the year
      dayOfMonth - the day of the month
      hourOfDay - the hour of the day
      minuteOfHour - the minute of the hour
      secondOfMinute - the second of the minute
      millisOfSecond - the millisecond of the second
      zone - the time zone, null means default time zone
    • BaseDateTime

      public BaseDateTime(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond, Chronology chronology)
      Constructs an instance from datetime field values using the specified chronology.

      If the chronology is null, ISOChronology in the default time zone is used.

      Parameters:
      year - the year
      monthOfYear - the month of the year
      dayOfMonth - the day of the month
      hourOfDay - the hour of the day
      minuteOfHour - the minute of the hour
      secondOfMinute - the second of the minute
      millisOfSecond - the millisecond of the second
      chronology - the chronology, null means ISOChronology in default zone
  • Method Details

    • checkChronology

      protected Chronology checkChronology(Chronology chronology)
      Checks the specified chronology before storing it, potentially altering it. This method must not access any instance variables.

      This implementation converts nulls to ISOChronology in the default zone.

      Parameters:
      chronology - the chronology to use, may be null
      Returns:
      the chronology to store in this datetime, not null
    • checkInstant

      protected long checkInstant(long instant, Chronology chronology)
      Checks the specified instant before storing it, potentially altering it. This method must not access any instance variables.

      This implementation simply returns the instant.

      Parameters:
      instant - the milliseconds from 1970-01-01T00:00:00Z to round
      chronology - the chronology to use, not null
      Returns:
      the instant to store in this datetime
    • getMillis

      public long getMillis()
      Gets the milliseconds of the datetime instant from the Java epoch of 1970-01-01T00:00:00Z.
      Specified by:
      getMillis in interface ReadableInstant
      Returns:
      the number of milliseconds since 1970-01-01T00:00:00Z
    • getChronology

      public Chronology getChronology()
      Gets the chronology of the datetime.
      Specified by:
      getChronology in interface ReadableInstant
      Returns:
      the Chronology that the datetime is using
    • setMillis

      protected void setMillis(long instant)
      Sets the milliseconds of the datetime.

      All changes to the millisecond field occurs via this method. Override and block this method to make a subclass immutable.

      Parameters:
      instant - the milliseconds since 1970-01-01T00:00:00Z to set the datetime to
    • setChronology

      protected void setChronology(Chronology chronology)
      Sets the chronology of the datetime.

      All changes to the chronology field occurs via this method. Override and block this method to make a subclass immutable.

      Parameters:
      chronology - the chronology to set