public class

PreciseDateTimeField

extends PreciseDurationDateTimeField
java.lang.Object
   ↳ org.joda.time.DateTimeField
     ↳ org.joda.time.field.BaseDateTimeField
       ↳ org.joda.time.field.PreciseDurationDateTimeField
         ↳ org.joda.time.field.PreciseDateTimeField

Class Overview

Precise datetime field, composed of two precise duration fields.

This DateTimeField is useful for defining DateTimeFields that are composed of precise durations, like time of day fields. If either duration field is imprecise, then an ImpreciseDateTimeField may be used instead.

PreciseDateTimeField is thread-safe and immutable.

Summary

Public Constructors
PreciseDateTimeField(DateTimeFieldType type, DurationField unit, DurationField range)
Constructor.
Public Methods
long addWrapField(long instant, int amount)
Add to the component of the specified time instant, wrapping around within that component if necessary.
int get(long instant)
Get the amount of fractional units from the specified time instant.
int getMaximumValue()
Get the maximum value for the field.
int getRange()
Returns the range of the field in the field's units.
DurationField getRangeDurationField()
Returns the range duration of this field.
long set(long instant, int value)
Set the specified amount of units to the specified time instant.
[Expand]
Inherited Methods
From class org.joda.time.field.PreciseDurationDateTimeField
From class org.joda.time.field.BaseDateTimeField
From class org.joda.time.DateTimeField
From class java.lang.Object

Public Constructors

public PreciseDateTimeField (DateTimeFieldType type, DurationField unit, DurationField range)

Constructor.

Parameters
type the field type this field uses
unit precise unit duration, like "seconds()".
range precise range duration, preferably a multiple of the unit, like "minutes()".
Throws
IllegalArgumentException if either duration field is imprecise
IllegalArgumentException if unit milliseconds is less than one or effective value range is less than two.

Public Methods

public long addWrapField (long instant, int amount)

Add to the component of the specified time instant, wrapping around within that component if necessary.

Parameters
instant the milliseconds from 1970-01-01T00:00:00Z to add to
amount the amount of units to add (can be negative).
Returns
  • the updated time instant.

public int get (long instant)

Get the amount of fractional units from the specified time instant.

Parameters
instant the milliseconds from 1970-01-01T00:00:00Z to query
Returns
  • the amount of fractional units extracted from the input.

public int getMaximumValue ()

Get the maximum value for the field.

Returns
  • the maximum value

public int getRange ()

Returns the range of the field in the field's units.

For example, 60 for seconds per minute. The field is allowed values from 0 to range - 1.

Returns
  • unit range

public DurationField getRangeDurationField ()

Returns the range duration of this field. For example, if this field represents "minute of hour", then the range duration field is an hours.

Returns
  • the range duration of this field, or null if field has no range

public long set (long instant, int value)

Set the specified amount of units to the specified time instant.

Parameters
instant the milliseconds from 1970-01-01T00:00:00Z to set in
value value of units to set.
Returns
  • the updated time instant.
Throws
IllegalArgumentException if value is too large or too small.