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
Class Instant

    java.lang.Object
      org.joda.time.base.AbstractInstant
          org.joda.time.Instant

All Implemented Interfaces:
  java.io.Serializable, java.lang.Comparable, ReadableInstant

    public final class Instant

extends AbstractInstant
implements ReadableInstant, java.io.Serializable

Instant is the standard implementation of a fully immutable instant in time.

`Instant` is an implementation of `ReadableInstant`. As with all instants, it represents an exact point on the time-line, but limited to the precision of milliseconds. An `Instant` should be used to represent a point in time irrespective of any other factor, such as chronology or time zone.

Internally, the class holds one piece of data, the instant as milliseconds from the Java epoch of 1970-01-01T00:00:00Z.

For example, an Instant can be used to compare two `DateTime` objects irrespective of chronology or time zone.

     boolean sameInstant = dt1.toInstant().equals(dt2.toInstant());

Note that the following code will also perform the same check:

     boolean sameInstant = dt1.isEqual(dt2);

Instant is thread-safe and immutable.

Since:
  1.0
Author:
  Stephen Colebourne
See Also:
  Serialized Form

Constructor Summary
`Instant()` Constructs an instance set to the current system millisecond time.
`Instant(long instant)` Constructs an instance set to the milliseconds from 1970-01-01T00:00:00Z.
`Instant(java.lang.Object instant)` Constructs an instance from an Object that represents a datetime.

Method Summary
`Chronology` | `getChronology()` Gets the chronology of the instant, which is ISO in the UTC zone.
`long` | `getMillis()` Gets the milliseconds of the instant.
`Instant` | `minus(long duration)` Gets a copy of this instant with the specified duration taken away.
`Instant` | `minus(ReadableDuration duration)` Gets a copy of this instant with the specified duration taken away.
`Instant` | `plus(long duration)` Gets a copy of this instant with the specified duration added.
`Instant` | `plus(ReadableDuration duration)` Gets a copy of this instant with the specified duration added.
`DateTime` | `toDateTime()` Get this object as a DateTime using ISOChronology in the default zone.
`DateTime` | `toDateTimeISO()` Deprecated. Use toDateTime() as it is identical
`Instant` | `toInstant()` Get this object as an Instant by returning `this`.
`MutableDateTime` | `toMutableDateTime()` Get this object as a MutableDateTime using ISOChronology in the default zone.
`MutableDateTime` | `toMutableDateTimeISO()` Deprecated. Use toMutableDateTime() as it is identical
`Instant` | `withDurationAdded(long durationToAdd, int scalar)` Gets a copy of this instant with the specified duration added.
`Instant` | `withDurationAdded(ReadableDuration durationToAdd, int scalar)` Gets a copy of this instant with the specified duration added.
`Instant` | `withMillis(long newMillis)` Gets a copy of this instant with different millis.

Methods inherited from class org.joda.time.base.AbstractInstant
`compareTo, equals, get, get, getZone, hashCode, isAfter, isAfter, isAfterNow, isBefore, isBefore, isBeforeNow, isEqual, isEqual, isEqualNow, isSupported, toDate, toDateTime, toDateTime, toMutableDateTime, toMutableDateTime, toString, toString`

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

Methods inherited from interface org.joda.time.ReadableInstant
`compareTo, equals, get, getZone, hashCode, isAfter, isBefore, isEqual, isSupported, toString`

Constructor Detail

### Instant

    public Instant()

  Constructs an instance set to the current system millisecond time.

### Instant

    public Instant(long instant)

  Constructs an instance set to the milliseconds from 1970-01-01T00:00:00Z.

  Parameters:
    `instant` - the milliseconds from 1970-01-01T00:00:00Z

### Instant

    public Instant(java.lang.Object instant)

  Constructs an instance from an Object that represents a datetime.

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

  Parameters:
    `instant` - the datetime object, null means now
  Throws:
    `java.lang.IllegalArgumentException` - if the instant is invalid

Method Detail

### toInstant

    public Instant toInstant()

  Get this object as an Instant by returning `this`.

  Specified by:
    `toInstant` in interface `ReadableInstant`
  Overrides:
    `toInstant` in class `AbstractInstant`
  Returns:
    `this`

### withMillis

    public Instant withMillis(long newMillis)

  Gets a copy of this instant with different millis.

  The returned object will be either be a new Instant or `this`.

  Parameters:
    `newMillis` - the new millis, from 1970-01-01T00:00:00Z
  Returns:
    a copy of this instant with different millis

### withDurationAdded

    public Instant withDurationAdded(long durationToAdd,
                                     int scalar)

  Gets a copy of this instant with the specified duration added.

  If the addition is zero, then `this` is returned.

  Parameters:
    `durationToAdd` - the duration to add to this one
    `scalar` - the amount of times to add, such as -1 to subtract once
  Returns:
    a copy of this instant with the duration added
  Throws:
    `java.lang.ArithmeticException` - if the new instant exceeds the capacity of a long

### withDurationAdded

    public Instant withDurationAdded(ReadableDuration durationToAdd,
                                     int scalar)

  Gets a copy of this instant with the specified duration added.

  If the addition is zero, then `this` is returned.

  Parameters:
    `durationToAdd` - the duration to add to this one, null means zero
    `scalar` - the amount of times to add, such as -1 to subtract once
  Returns:
    a copy of this instant with the duration added
  Throws:
    `java.lang.ArithmeticException` - if the new instant exceeds the capacity of a long

### plus

    public Instant plus(long duration)

  Gets a copy of this instant with the specified duration added.

  If the amount is zero or null, then `this` is returned.

  Parameters:
    `duration` - the duration to add to this one
  Returns:
    a copy of this instant with the duration added
  Throws:
    `java.lang.ArithmeticException` - if the new instant exceeds the capacity of a long

### plus

    public Instant plus(ReadableDuration duration)

  Gets a copy of this instant with the specified duration added.

  If the amount is zero or null, then `this` is returned.

  Parameters:
    `duration` - the duration to add to this one, null means zero
  Returns:
    a copy of this instant with the duration added
  Throws:
    `java.lang.ArithmeticException` - if the new instant exceeds the capacity of a long

### minus

    public Instant minus(long duration)

  Gets a copy of this instant with the specified duration taken away.

  If the amount is zero or null, then `this` is returned.

  Parameters:
    `duration` - the duration to reduce this instant by
  Returns:
    a copy of this instant with the duration taken away
  Throws:
    `java.lang.ArithmeticException` - if the new instant exceeds the capacity of a long

### minus

    public Instant minus(ReadableDuration duration)

  Gets a copy of this instant with the specified duration taken away.

  If the amount is zero or null, then `this` is returned.

  Parameters:
    `duration` - the duration to reduce this instant by
  Returns:
    a copy of this instant with the duration taken away
  Throws:
    `java.lang.ArithmeticException` - if the new instant exceeds the capacity of a long

### getMillis

    public long getMillis()

  Gets the milliseconds of the instant.

  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 instant, which is ISO in the UTC zone.

  This method returns `ISOChronology.getInstanceUTC()` which corresponds to the definition of the Java epoch 1970-01-01T00:00:00Z.

  Specified by:
    `getChronology` in interface `ReadableInstant`
  Returns:
    ISO in the UTC zone

### toDateTime

    public DateTime toDateTime()

  Get this object as a DateTime using ISOChronology in the default zone.

  This method returns a DateTime object in the default zone. This differs from the similarly named method on DateTime, DateMidnight or MutableDateTime which retains the time zone. The difference is because Instant really represents a time without a zone, thus calling this method we really have no zone to 'retain' and hence expect to switch to the default zone.

  This method definition preserves compatability with earlier versions of Joda-Time.

  Overrides:
    `toDateTime` in class `AbstractInstant`
  Returns:
    a DateTime using the same millis

### toDateTimeISO

    public DateTime toDateTimeISO()

  Deprecated. Use toDateTime() as it is identical

  Get this object as a DateTime using ISOChronology in the default zone. This method is identical to `toDateTime()`.

  This method returns a DateTime object in the default zone. This differs from the similarly named method on DateTime, DateMidnight or MutableDateTime which retains the time zone. The difference is because Instant really represents a time without a zone, thus calling this method we really have no zone to 'retain' and hence expect to switch to the default zone.

  This method definition preserves compatability with earlier versions of Joda-Time.

  Overrides:
    `toDateTimeISO` in class `AbstractInstant`
  Returns:
    a DateTime using the same millis with ISOChronology

### toMutableDateTime

    public MutableDateTime toMutableDateTime()

  Get this object as a MutableDateTime using ISOChronology in the default zone.

  This method returns a MutableDateTime object in the default zone. This differs from the similarly named method on DateTime, DateMidnight or MutableDateTime which retains the time zone. The difference is because Instant really represents a time without a zone, thus calling this method we really have no zone to 'retain' and hence expect to switch to the default zone.

  This method definition preserves compatability with earlier versions of Joda-Time.

  Overrides:
    `toMutableDateTime` in class `AbstractInstant`
  Returns:
    a MutableDateTime using the same millis

### toMutableDateTimeISO

    public MutableDateTime toMutableDateTimeISO()

  Deprecated. Use toMutableDateTime() as it is identical

  Get this object as a MutableDateTime using ISOChronology in the default zone. This method is identical to `toMutableDateTime()`.

  This method returns a MutableDateTime object in the default zone. This differs from the similarly named method on DateTime, DateMidnight or MutableDateTime which retains the time zone. The difference is because Instant really represents a time without a zone, thus calling this method we really have no zone to 'retain' and hence expect to switch to the default zone.

  This method definition preserves compatability with earlier versions of Joda-Time.

  Overrides:
    `toMutableDateTimeISO` in class `AbstractInstant`
  Returns:
    a MutableDateTime using the same millis with ISOChronology

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