org.joda.time.base

Class AbstractInstant

Implemented Interfaces:
Comparable, ReadableInstant
Known Direct Subclasses:
AbstractDateTime, Instant

public abstract class AbstractInstant
extends java.lang.Object
implements ReadableInstant

AbstractInstant provides the common behaviour for instant classes.

This class has no concept of a chronology, all methods work on the millisecond instant.

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

Whenever you want to implement ReadableInstant you should extend this class.

AbstractInstant itself is thread-safe and immutable, but subclasses may be mutable and not thread-safe.

Authors:
Stephen Colebourne
Brian S O'Neill
Since:
1.0

Constructor Summary

AbstractInstant()
Constructor.

Method Summary

int
compareTo(Object instant)
Compares this object with the specified object for ascending millisecond instant order.
boolean
equals(Object readableInstant)
Compares this object with the specified object for equality based on the millisecond instant, chronology and time zone.
int
get(DateTimeField field)
Get the value of one of the fields of a datetime.
int
get(DateTimeFieldType type)
Get the value of one of the fields of a datetime using the chronology of the instant.
DateTimeZone
getZone()
Gets the time zone of the instant from the chronology.
int
hashCode()
Gets a hash code for the instant as defined in ReadableInstant.
boolean
isAfter(long instant)
Is this instant after the millisecond instant passed in comparing solely by millisecond.
boolean
isAfter(ReadableInstant instant)
Is this instant after the instant passed in comparing solely by millisecond.
boolean
isAfterNow()
Is this instant after the current instant comparing solely by millisecond.
boolean
isBefore(long instant)
Is this instant before the millisecond instant passed in comparing solely by millisecond.
boolean
isBefore(ReadableInstant instant)
Is this instant before the instant passed in comparing solely by millisecond.
boolean
isBeforeNow()
Is this instant before the current instant comparing solely by millisecond.
boolean
isEqual(long instant)
Is this instant equal to the millisecond instant passed in comparing solely by millisecond.
boolean
isEqual(ReadableInstant instant)
Is this instant equal to the instant passed in comparing solely by millisecond.
boolean
isEqualNow()
Is this instant equal to the current instant comparing solely by millisecond.
boolean
isSupported(DateTimeFieldType type)
Checks if the field type specified is supported by this instant and chronology.
Date
toDate()
Get the date time as a java.util.Date.
DateTime
toDateTime()
Get this object as a DateTime in the same zone.
DateTime
toDateTime(Chronology chronology)
Get this object as a DateTime using the given chronology and its zone.
DateTime
toDateTime(DateTimeZone zone)
Get this object as a DateTime using the same chronology but a different zone.
DateTime
toDateTimeISO()
Get this object as a DateTime using ISOChronology in the same zone.
Instant
toInstant()
Get this object as an Instant.
MutableDateTime
toMutableDateTime()
Get this object as a MutableDateTime in the same zone.
MutableDateTime
toMutableDateTime(Chronology chronology)
Get this object as a MutableDateTime using the given chronology and its zone.
MutableDateTime
toMutableDateTime(DateTimeZone zone)
Get this object as a MutableDateTime using the same chronology but a different zone.
MutableDateTime
toMutableDateTimeISO()
Get this object as a MutableDateTime using ISOChronology in the same zone.
String
toString()
Output the date time in ISO8601 format (yyyy-MM-ddTHH:mm:ss.SSSZZ).
String
toString(DateTimeFormatter formatter)
Uses the specified formatter to convert this partial to a String.

Constructor Details

AbstractInstant

protected AbstractInstant()
Constructor.

Method Details

compareTo

public int compareTo(Object instant)
Compares this object with the specified object for ascending millisecond instant order. This ordering is inconsistent with equals, as it ignores the Chronology.

All ReadableInstant instances are accepted.

Specified by:
compareTo in interface ReadableInstant
Parameters:
instant - a readable instant to check against
Returns:
negative value if this is less, 0 if equal, or positive value if greater

equals

public boolean equals(Object readableInstant)
Specified by:
equals in interface ReadableInstant
Parameters:
readableInstant - a readable instant to check against
Returns:
true if millisecond and chronology are equal, false if not or the instant is null or of an incorrect type

get

public int get(DateTimeField field)
Get the value of one of the fields of a datetime.

This could be used to get a field using a different Chronology. For example:

 Instant dt = new Instant();
 int gjYear = dt.get(Chronology.getCoptic().year());
 
Parameters:
field - the DateTimeField to use, not null
Returns:
the value

get

public int get(DateTimeFieldType type)
Get the value of one of the fields of a datetime using the chronology of the instant.

This method uses the chronology of the instant to obtain the value. For example:

 DateTime dt = new DateTime();
 int year = dt.get(DateTimeFieldType.year());
 
Specified by:
get in interface ReadableInstant
Parameters:
type - a field type, usually obtained from DateTimeFieldType, not null
Returns:
the value of that field

getZone

public DateTimeZone getZone()
Gets the time zone of the instant from the chronology.
Specified by:
getZone in interface ReadableInstant
Returns:
the DateTimeZone that the instant is using, never null

hashCode

public int hashCode()
Gets a hash code for the instant as defined in ReadableInstant.
Specified by:
hashCode in interface ReadableInstant
Returns:
a suitable hash code

isAfter

public boolean isAfter(long instant)
Is this instant after the millisecond instant passed in comparing solely by millisecond.
Parameters:
instant - a millisecond instant to check against
Returns:
true if this instant is after the instant passed in

isAfter

public boolean isAfter(ReadableInstant instant)
Is this instant after the instant passed in comparing solely by millisecond.
Specified by:
isAfter in interface ReadableInstant
Parameters:
instant - an instant to check against, null means now
Returns:
true if the instant is after the instant passed in

isAfterNow

public boolean isAfterNow()
Is this instant after the current instant comparing solely by millisecond.
Returns:
true if this instant is after the current instant

isBefore

public boolean isBefore(long instant)
Is this instant before the millisecond instant passed in comparing solely by millisecond.
Parameters:
instant - a millisecond instant to check against
Returns:
true if this instant is before the instant passed in

isBefore

public boolean isBefore(ReadableInstant instant)
Is this instant before the instant passed in comparing solely by millisecond.
Specified by:
isBefore in interface ReadableInstant
Parameters:
instant - an instant to check against, null means now
Returns:
true if the instant is before the instant passed in

isBeforeNow

public boolean isBeforeNow()
Is this instant before the current instant comparing solely by millisecond.
Returns:
true if this instant is before the current instant

isEqual

public boolean isEqual(long instant)
Is this instant equal to the millisecond instant passed in comparing solely by millisecond.
Parameters:
instant - a millisecond instant to check against
Returns:
true if this instant is before the instant passed in

isEqual

public boolean isEqual(ReadableInstant instant)
Is this instant equal to the instant passed in comparing solely by millisecond.
Specified by:
isEqual in interface ReadableInstant
Parameters:
instant - an instant to check against, null means now
Returns:
true if the instant is equal to the instant passed in

isEqualNow

public boolean isEqualNow()
Is this instant equal to the current instant comparing solely by millisecond.
Returns:
true if this instant is before the current instant

isSupported

public boolean isSupported(DateTimeFieldType type)
Checks if the field type specified is supported by this instant and chronology. This can be used to avoid exceptions in get(DateTimeFieldType).
Specified by:
isSupported in interface ReadableInstant
Parameters:
type - a field type, usually obtained from DateTimeFieldType
Returns:
true if the field type is supported

toDate

public Date toDate()
Get the date time as a java.util.Date.

The Date object created has exactly the same millisecond instant as this object.

Returns:
a Date initialised with this datetime

toDateTime

public DateTime toDateTime()
Get this object as a DateTime in the same zone.
Returns:
a DateTime using the same millis

toDateTime

public DateTime toDateTime(Chronology chronology)
Get this object as a DateTime using the given chronology and its zone.
Parameters:
chronology - chronology to apply, or ISOChronology if null
Returns:
a DateTime using the same millis

toDateTime

public DateTime toDateTime(DateTimeZone zone)
Get this object as a DateTime using the same chronology but a different zone.
Parameters:
zone - time zone to apply, or default if null
Returns:
a DateTime using the same millis

toDateTimeISO

public DateTime toDateTimeISO()
Get this object as a DateTime using ISOChronology in the same zone.
Returns:
a DateTime using the same millis with ISOChronology

toInstant

public Instant toInstant()
Get this object as an Instant.
Specified by:
toInstant in interface ReadableInstant
Returns:
an Instant using the same millis

toMutableDateTime

public MutableDateTime toMutableDateTime()
Get this object as a MutableDateTime in the same zone.
Returns:
a MutableDateTime using the same millis

toMutableDateTime

public MutableDateTime toMutableDateTime(Chronology chronology)
Get this object as a MutableDateTime using the given chronology and its zone.
Parameters:
chronology - chronology to apply, or ISOChronology if null
Returns:
a MutableDateTime using the same millis

toMutableDateTime

public MutableDateTime toMutableDateTime(DateTimeZone zone)
Get this object as a MutableDateTime using the same chronology but a different zone.
Parameters:
zone - time zone to apply, or default if null
Returns:
a MutableDateTime using the same millis

toMutableDateTimeISO

public MutableDateTime toMutableDateTimeISO()
Get this object as a MutableDateTime using ISOChronology in the same zone.
Returns:
a MutableDateTime using the same millis with ISOChronology

toString

public String toString()
Output the date time in ISO8601 format (yyyy-MM-ddTHH:mm:ss.SSSZZ).
Specified by:
toString in interface ReadableInstant
Returns:
ISO8601 time formatted string.

toString

public String toString(DateTimeFormatter formatter)
Uses the specified formatter to convert this partial to a String.
Parameters:
formatter - the formatter to use, null means use toString().
Returns:
the formatted string
Since:
1.1

Copyright (c) 2001-2006 - Joda.org