Top Description Inners Fields Constructors Methods
org.threeten.extra

public final Class TemporalFields

extends Object
Class Inheritance
Static Imports
java.time.temporal.ChronoField.DAY_OF_YEAR, .ChronoField.MONTH_OF_YEAR, .ChronoField.YEAR, .ChronoUnit.DAYS, .ChronoUnit.YEARS, .IsoFields.QUARTER_OF_YEAR, .IsoFields.QUARTER_YEARS

Additional Temporal fields.

This provides additional fields and units not in the JDK.

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static enum
TemporalFields.DayOfHalfField

Implementation of day-of-half.

private static enum
TemporalFields.HalfOfYearField

Implementation of half-of-year.

private static enum
TemporalFields.HalfUnit

Implementation of the half-year unit.

Field Summary

Modifier and TypeField and Description
public static final TemporalField
DAY_OF_HALF

The field that represents the day-of-half.

public static final TemporalField
HALF_OF_YEAR

The field that represents the half-of-year.

public static final TemporalUnit
HALF_YEARS

Unit that represents the concept of a half-year.

Constructor Summary

AccessConstructor and Description
private
TemporalFields()

Restricted constructor.

Method Summary

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

DAY_OF_HALFback to summary
public static final TemporalField DAY_OF_HALF

The field that represents the day-of-half.

This field allows the day-of-half value to be queried and set. The day-of-half has values from 1 to 181 in H1 of a standard year, from 1 to 182 in H1 of a leap year and from 1 to 184 in H2.

The day-of-half can only be calculated if the day-of-year, month-of-year and year are available.

When setting this field, the value is allowed to be partially lenient, taking any value from 1 to 184. If the half has less than 184 days, then the day will end up in the following half-year.

In the resolving phase of parsing, a date can be created from a year, half-of-year and day-of-half.

In strict mode, all three fields are validated against their range of valid values. The day-of-half field is validated from 1 to 181, 182 or 184 depending on the year and half.

In smart mode, all three fields are validated against their range of valid values. The day-of-half field is validated between 1 and 184, ignoring the actual range based on the year and half. If the day-of-half exceeds the actual range, then the resulting date is in the next half-year.

In lenient mode, only the year is validated against the range of valid values. The resulting date is calculated equivalent to the following three stage approach. First, create a date on the first of January in the requested year. Then take the half-of-year, subtract one, and add the amount in halves to the date. Finally, take the day-of-half, subtract one, and add the amount in days to the date.

This unit is an immutable and thread-safe singleton.

HALF_OF_YEARback to summary
public static final TemporalField HALF_OF_YEAR

The field that represents the half-of-year.

This field allows the half-of-year value to be queried and set. The half-of-year has values from 1 to 2.

The half-of-year can only be calculated if the month-of-year is available.

In the resolving phase of parsing, a date can be created from a year, half-of-year and day-of-half. See DAY_OF_HALF for details.

This unit is an immutable and thread-safe singleton.

HALF_YEARSback to summary
public static final TemporalUnit HALF_YEARS

Unit that represents the concept of a half-year. For the ISO calendar system, it is equal to 6 months. The estimated duration of a half-year is one half of 365.2425 Days.

This unit is an immutable and thread-safe singleton.

Constructor Detail

TemporalFieldsback to summary
private TemporalFields()

Restricted constructor.

org.threeten.extra back to summary

private final Enum TemporalFields.DayOfHalfField

extends Enum<TemporalFields.DayOfHalfField>
implements TemporalField
Class Inheritance
All Implemented Interfaces
java.time.temporal.TemporalField

Implementation of day-of-half.

Field Summary

Modifier and TypeField and Description
public static final TemporalFields.DayOfHalfField
private static final ValueRange
private static final long

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public <R extends Temporal> R
adjustInto(R
the temporal object to adjust, not null
temporal
,
long
the new value of the field
newValue
)

Implements java.time.temporal.TemporalField.adjustInto.

Returns a copy of the specified temporal object with the value of this field set.

public TemporalUnit
getBaseUnit()

Implements java.time.temporal.TemporalField.getBaseUnit.

Gets the unit that the field is measured in.

The unit of the field is the period that varies within the range.

public long
getFrom(TemporalAccessor
the temporal object to query, not null
temporal
)

Implements java.time.temporal.TemporalField.getFrom.

Gets the value of this field from the specified temporal object.

public TemporalUnit
getRangeUnit()

Implements java.time.temporal.TemporalField.getRangeUnit.

Gets the range that the field is bound by.

public boolean
isDateBased()

Implements java.time.temporal.TemporalField.isDateBased.

Checks if this field represents a component of a date.

public boolean
isSupportedBy(TemporalAccessor
the temporal object to query, not null
temporal
)

Implements java.time.temporal.TemporalField.isSupportedBy.

Checks if this field is supported by the temporal object.

public boolean
isTimeBased()

Implements java.time.temporal.TemporalField.isTimeBased.

Checks if this field represents a component of a time.

public ValueRange
range()

Implements java.time.temporal.TemporalField.range.

Gets the range of valid values for the field.

public ValueRange
rangeRefinedBy(TemporalAccessor
the temporal object used to refine the result, not null
temporal
)

Implements java.time.temporal.TemporalField.rangeRefinedBy.

Get the range of valid values for this field using the temporal object to refine the result.

public ChronoLocalDate
resolve(Map<TemporalField, Long>
the map of fields to values, which can be updated, not null
fieldValues
,
TemporalAccessor
the partially complete temporal to query for zone and chronology; querying for other things is undefined and not recommended, not null
partialTemporal
,
ResolverStyle
the requested type of resolve, not null
resolverStyle
)

Overrides default java.time.temporal.TemporalField.resolve.

Resolves this field to provide a simpler alternative or a date.

public String
toString()

Overrides java.lang.Enum.toString.

Implements java.time.temporal.TemporalField.toString.

Gets a descriptive name for the field.

public static TemporalFields.DayOfHalfField
public static TemporalFields.DayOfHalfField[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinalvalueOf

Field Detail

INSTANCEback to summary
public static final TemporalFields.DayOfHalfField INSTANCE
RANGEback to summary
private static final ValueRange RANGE
serialVersionUIDback to summary
private static final long serialVersionUID

Constructor Detail

DayOfHalfFieldback to summary
private DayOfHalfField()

Method Detail

adjustIntoback to summary
public <R extends Temporal> R adjustInto(R temporal, long newValue)

Implements java.time.temporal.TemporalField.adjustInto.

Doc from java.time.temporal.TemporalField.adjustInto.

Returns a copy of the specified temporal object with the value of this field set.

This returns a new temporal object based on the specified one with the value for this field changed. For example, on a LocalDate, this could be used to set the year, month or day-of-month. The returned object has the same observable type as the specified object.

In some cases, changing a field is not fully defined. For example, if the target object is a date representing the 31st January, then changing the month to February would be unclear. In cases like this, the implementation is responsible for resolving the result. Typically it will choose the previous valid date, which would be the last valid day of February in this example.

There are two equivalent ways of using this method. The first is to invoke this method directly. The second is to use Temporal#with(TemporalField, long):

  // these two lines are equivalent, but the second approach is recommended
  temporal = thisField.adjustInto(temporal);
  temporal = temporal.with(thisField);
It is recommended to use the second approach, with(TemporalField), as it is a lot clearer to read in code.

Implementations should perform any queries or calculations using the fields available in ChronoField. If the field is not supported an UnsupportedTemporalTypeException must be thrown.

Implementations must not alter the specified temporal object. Instead, an adjusted copy of the original must be returned. This provides equivalent, safe behavior for immutable and mutable implementations.

Parameters
<R>
the type of the Temporal object
temporal:R

the temporal object to adjust, not null

newValue:long

the new value of the field

Returns:R

the adjusted temporal object, not null

Annotations
@SuppressWarnings:unchecked
@Override
getBaseUnitback to summary
public TemporalUnit getBaseUnit()

Implements java.time.temporal.TemporalField.getBaseUnit.

Doc from java.time.temporal.TemporalField.getBaseUnit.

Gets the unit that the field is measured in.

The unit of the field is the period that varies within the range. For example, in the field 'MonthOfYear', the unit is 'Months'. See also getRangeUnit().

Returns:TemporalUnit

the unit defining the base unit of the field, not null

Annotations
@Override
getFromback to summary
public long getFrom(TemporalAccessor temporal)

Implements java.time.temporal.TemporalField.getFrom.

Doc from java.time.temporal.TemporalField.getFrom.

Gets the value of this field from the specified temporal object.

This queries the temporal object for the value of this field.

There are two equivalent ways of using this method. The first is to invoke this method directly. The second is to use TemporalAccessor#getLong(TemporalField) (or TemporalAccessor#get(TemporalField)):

  // these two lines are equivalent, but the second approach is recommended
  temporal = thisField.getFrom(temporal);
  temporal = temporal.getLong(thisField);
It is recommended to use the second approach, getLong(TemporalField), as it is a lot clearer to read in code.

Implementations should perform any queries or calculations using the fields available in ChronoField. If the field is not supported an UnsupportedTemporalTypeException must be thrown.

Parameters
temporal:TemporalAccessor

the temporal object to query, not null

Returns:long

the value of this field, not null

Annotations
@Override
getRangeUnitback to summary
public TemporalUnit getRangeUnit()

Implements java.time.temporal.TemporalField.getRangeUnit.

Doc from java.time.temporal.TemporalField.getRangeUnit.

Gets the range that the field is bound by.

The range of the field is the period that the field varies within. For example, in the field 'MonthOfYear', the range is 'Years'. See also getBaseUnit().

The range is never null. For example, the 'Year' field is shorthand for 'YearOfForever'. It therefore has a unit of 'Years' and a range of 'Forever'.

Returns:TemporalUnit

the unit defining the range of the field, not null

Annotations
@Override
isDateBasedback to summary
public boolean isDateBased()

Implements java.time.temporal.TemporalField.isDateBased.

Doc from java.time.temporal.TemporalField.isDateBased.

Checks if this field represents a component of a date.

A field is date-based if it can be derived from EPOCH_DAY. Note that it is valid for both isDateBased() and isTimeBased() to return false, such as when representing a field like minute-of-week.

Returns:boolean

true if this field is a component of a date

Annotations
@Override
isSupportedByback to summary
public boolean isSupportedBy(TemporalAccessor temporal)

Implements java.time.temporal.TemporalField.isSupportedBy.

Doc from java.time.temporal.TemporalField.isSupportedBy.

Checks if this field is supported by the temporal object.

This determines whether the temporal accessor supports this field. If this returns false, then the temporal cannot be queried for this field.

There are two equivalent ways of using this method. The first is to invoke this method directly. The second is to use TemporalAccessor#isSupported(TemporalField):

  // these two lines are equivalent, but the second approach is recommended
  temporal = thisField.isSupportedBy(temporal);
  temporal = temporal.isSupported(thisField);
It is recommended to use the second approach, isSupported(TemporalField), as it is a lot clearer to read in code.

Implementations should determine whether they are supported using the fields available in ChronoField.

Parameters
temporal:TemporalAccessor

the temporal object to query, not null

Returns:boolean

true if the date-time can be queried for this field, false if not

Annotations
@Override
isTimeBasedback to summary
public boolean isTimeBased()

Implements java.time.temporal.TemporalField.isTimeBased.

Doc from java.time.temporal.TemporalField.isTimeBased.

Checks if this field represents a component of a time.

A field is time-based if it can be derived from NANO_OF_DAY. Note that it is valid for both isDateBased() and isTimeBased() to return false, such as when representing a field like minute-of-week.

Returns:boolean

true if this field is a component of a time

Annotations
@Override
rangeback to summary
public ValueRange range()

Implements java.time.temporal.TemporalField.range.

Doc from java.time.temporal.TemporalField.range.

Gets the range of valid values for the field.

All fields can be expressed as a long integer. This method returns an object that describes the valid range for that value. This method is generally only applicable to the ISO-8601 calendar system.

Note that the result only describes the minimum and maximum valid values and it is important not to read too much into them. For example, there could be values within the range that are invalid for the field.

Returns:ValueRange

the range of valid values for the field, not null

Annotations
@Override
rangeRefinedByback to summary
public ValueRange rangeRefinedBy(TemporalAccessor temporal)

Implements java.time.temporal.TemporalField.rangeRefinedBy.

Doc from java.time.temporal.TemporalField.rangeRefinedBy.

Get the range of valid values for this field using the temporal object to refine the result.

This uses the temporal object to find the range of valid values for the field. This is similar to range(), however this method refines the result using the temporal. For example, if the field is DAY_OF_MONTH the range method is not accurate as there are four possible month lengths, 28, 29, 30 and 31 days. Using this method with a date allows the range to be accurate, returning just one of those four options.

There are two equivalent ways of using this method. The first is to invoke this method directly. The second is to use TemporalAccessor#range(TemporalField):

  // these two lines are equivalent, but the second approach is recommended
  temporal = thisField.rangeRefinedBy(temporal);
  temporal = temporal.range(thisField);
It is recommended to use the second approach, range(TemporalField), as it is a lot clearer to read in code.

Implementations should perform any queries or calculations using the fields available in ChronoField. If the field is not supported an UnsupportedTemporalTypeException must be thrown.

Parameters
temporal:TemporalAccessor

the temporal object used to refine the result, not null

Returns:ValueRange

the range of valid values for this field, not null

Annotations
@Override
resolveback to summary
public ChronoLocalDate resolve(Map<TemporalField, Long> fieldValues, TemporalAccessor partialTemporal, ResolverStyle resolverStyle)

Overrides default java.time.temporal.TemporalField.resolve.

Doc from java.time.temporal.TemporalField.resolve.

Resolves this field to provide a simpler alternative or a date.

This method is invoked during the resolve phase of parsing. It is designed to allow application defined fields to be simplified into more standard fields, such as those on ChronoField, or into a date.

Applications should not normally invoke this method directly.

Parameters
fieldValues:Map<TemporalField, Long>

the map of fields to values, which can be updated, not null

partialTemporal:TemporalAccessor

the partially complete temporal to query for zone and chronology; querying for other things is undefined and not recommended, not null

resolverStyle:ResolverStyle

the requested type of resolve, not null

Returns:ChronoLocalDate

the resolved temporal object; null if resolving only changed the map, or no resolve occurred

Annotations
@Override
toStringback to summary
public String toString()

Overrides java.lang.Enum.toString.

Implements java.time.temporal.TemporalField.toString.

Doc from java.time.temporal.TemporalField.toString.

Gets a descriptive name for the field.

The should be of the format 'BaseOfRange', such as 'MonthOfYear', unless the field has a range of FOREVER, when only the base unit is mentioned, such as 'Year' or 'Era'.

Returns:String

the name of the field, not null

Annotations
@Override
valueOfback to summary
public static TemporalFields.DayOfHalfField valueOf(String name)
valuesback to summary
public static TemporalFields.DayOfHalfField[] values()
org.threeten.extra back to summary

private final Enum TemporalFields.HalfOfYearField

extends Enum<TemporalFields.HalfOfYearField>
implements TemporalField
Class Inheritance
All Implemented Interfaces
java.time.temporal.TemporalField

Implementation of half-of-year.

Field Summary

Modifier and TypeField and Description
public static final TemporalFields.HalfOfYearField
private static final long

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public <R extends Temporal> R
adjustInto(R
the temporal object to adjust, not null
temporal
,
long
the new value of the field
newValue
)

Implements java.time.temporal.TemporalField.adjustInto.

Returns a copy of the specified temporal object with the value of this field set.

public TemporalUnit
getBaseUnit()

Implements java.time.temporal.TemporalField.getBaseUnit.

Gets the unit that the field is measured in.

The unit of the field is the period that varies within the range.

public long
getFrom(TemporalAccessor
the temporal object to query, not null
temporal
)

Implements java.time.temporal.TemporalField.getFrom.

Gets the value of this field from the specified temporal object.

public TemporalUnit
getRangeUnit()

Implements java.time.temporal.TemporalField.getRangeUnit.

Gets the range that the field is bound by.

public boolean
isDateBased()

Implements java.time.temporal.TemporalField.isDateBased.

Checks if this field represents a component of a date.

public boolean
isSupportedBy(TemporalAccessor
the temporal object to query, not null
temporal
)

Implements java.time.temporal.TemporalField.isSupportedBy.

Checks if this field is supported by the temporal object.

public boolean
isTimeBased()

Implements java.time.temporal.TemporalField.isTimeBased.

Checks if this field represents a component of a time.

public ValueRange
range()

Implements java.time.temporal.TemporalField.range.

Gets the range of valid values for the field.

public ValueRange
rangeRefinedBy(TemporalAccessor
the temporal object used to refine the result, not null
temporal
)

Implements java.time.temporal.TemporalField.rangeRefinedBy.

Get the range of valid values for this field using the temporal object to refine the result.

public String
toString()

Overrides java.lang.Enum.toString.

Implements java.time.temporal.TemporalField.toString.

Gets a descriptive name for the field.

public static TemporalFields.HalfOfYearField
public static TemporalFields.HalfOfYearField[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinalvalueOf

Field Detail

INSTANCEback to summary
public static final TemporalFields.HalfOfYearField INSTANCE
serialVersionUIDback to summary
private static final long serialVersionUID

Constructor Detail

HalfOfYearFieldback to summary
private HalfOfYearField()

Method Detail

adjustIntoback to summary
public <R extends Temporal> R adjustInto(R temporal, long newValue)

Implements java.time.temporal.TemporalField.adjustInto.

Doc from java.time.temporal.TemporalField.adjustInto.

Returns a copy of the specified temporal object with the value of this field set.

This returns a new temporal object based on the specified one with the value for this field changed. For example, on a LocalDate, this could be used to set the year, month or day-of-month. The returned object has the same observable type as the specified object.

In some cases, changing a field is not fully defined. For example, if the target object is a date representing the 31st January, then changing the month to February would be unclear. In cases like this, the implementation is responsible for resolving the result. Typically it will choose the previous valid date, which would be the last valid day of February in this example.

There are two equivalent ways of using this method. The first is to invoke this method directly. The second is to use Temporal#with(TemporalField, long):

  // these two lines are equivalent, but the second approach is recommended
  temporal = thisField.adjustInto(temporal);
  temporal = temporal.with(thisField);
It is recommended to use the second approach, with(TemporalField), as it is a lot clearer to read in code.

Implementations should perform any queries or calculations using the fields available in ChronoField. If the field is not supported an UnsupportedTemporalTypeException must be thrown.

Implementations must not alter the specified temporal object. Instead, an adjusted copy of the original must be returned. This provides equivalent, safe behavior for immutable and mutable implementations.

Parameters
<R>
the type of the Temporal object
temporal:R

the temporal object to adjust, not null

newValue:long

the new value of the field

Returns:R

the adjusted temporal object, not null

Annotations
@SuppressWarnings:unchecked
@Override
getBaseUnitback to summary
public TemporalUnit getBaseUnit()

Implements java.time.temporal.TemporalField.getBaseUnit.

Doc from java.time.temporal.TemporalField.getBaseUnit.

Gets the unit that the field is measured in.

The unit of the field is the period that varies within the range. For example, in the field 'MonthOfYear', the unit is 'Months'. See also getRangeUnit().

Returns:TemporalUnit

the unit defining the base unit of the field, not null

Annotations
@Override
getFromback to summary
public long getFrom(TemporalAccessor temporal)

Implements java.time.temporal.TemporalField.getFrom.

Doc from java.time.temporal.TemporalField.getFrom.

Gets the value of this field from the specified temporal object.

This queries the temporal object for the value of this field.

There are two equivalent ways of using this method. The first is to invoke this method directly. The second is to use TemporalAccessor#getLong(TemporalField) (or TemporalAccessor#get(TemporalField)):

  // these two lines are equivalent, but the second approach is recommended
  temporal = thisField.getFrom(temporal);
  temporal = temporal.getLong(thisField);
It is recommended to use the second approach, getLong(TemporalField), as it is a lot clearer to read in code.

Implementations should perform any queries or calculations using the fields available in ChronoField. If the field is not supported an UnsupportedTemporalTypeException must be thrown.

Parameters
temporal:TemporalAccessor

the temporal object to query, not null

Returns:long

the value of this field, not null

Annotations
@Override
getRangeUnitback to summary
public TemporalUnit getRangeUnit()

Implements java.time.temporal.TemporalField.getRangeUnit.

Doc from java.time.temporal.TemporalField.getRangeUnit.

Gets the range that the field is bound by.

The range of the field is the period that the field varies within. For example, in the field 'MonthOfYear', the range is 'Years'. See also getBaseUnit().

The range is never null. For example, the 'Year' field is shorthand for 'YearOfForever'. It therefore has a unit of 'Years' and a range of 'Forever'.

Returns:TemporalUnit

the unit defining the range of the field, not null

Annotations
@Override
isDateBasedback to summary
public boolean isDateBased()

Implements java.time.temporal.TemporalField.isDateBased.

Doc from java.time.temporal.TemporalField.isDateBased.

Checks if this field represents a component of a date.

A field is date-based if it can be derived from EPOCH_DAY. Note that it is valid for both isDateBased() and isTimeBased() to return false, such as when representing a field like minute-of-week.

Returns:boolean

true if this field is a component of a date

Annotations
@Override
isSupportedByback to summary
public boolean isSupportedBy(TemporalAccessor temporal)

Implements java.time.temporal.TemporalField.isSupportedBy.

Doc from java.time.temporal.TemporalField.isSupportedBy.

Checks if this field is supported by the temporal object.

This determines whether the temporal accessor supports this field. If this returns false, then the temporal cannot be queried for this field.

There are two equivalent ways of using this method. The first is to invoke this method directly. The second is to use TemporalAccessor#isSupported(TemporalField):

  // these two lines are equivalent, but the second approach is recommended
  temporal = thisField.isSupportedBy(temporal);
  temporal = temporal.isSupported(thisField);
It is recommended to use the second approach, isSupported(TemporalField), as it is a lot clearer to read in code.

Implementations should determine whether they are supported using the fields available in ChronoField.

Parameters
temporal:TemporalAccessor

the temporal object to query, not null

Returns:boolean

true if the date-time can be queried for this field, false if not

Annotations
@Override
isTimeBasedback to summary
public boolean isTimeBased()

Implements java.time.temporal.TemporalField.isTimeBased.

Doc from java.time.temporal.TemporalField.isTimeBased.

Checks if this field represents a component of a time.

A field is time-based if it can be derived from NANO_OF_DAY. Note that it is valid for both isDateBased() and isTimeBased() to return false, such as when representing a field like minute-of-week.

Returns:boolean

true if this field is a component of a time

Annotations
@Override
rangeback to summary
public ValueRange range()

Implements java.time.temporal.TemporalField.range.

Doc from java.time.temporal.TemporalField.range.

Gets the range of valid values for the field.

All fields can be expressed as a long integer. This method returns an object that describes the valid range for that value. This method is generally only applicable to the ISO-8601 calendar system.

Note that the result only describes the minimum and maximum valid values and it is important not to read too much into them. For example, there could be values within the range that are invalid for the field.

Returns:ValueRange

the range of valid values for the field, not null

Annotations
@Override
rangeRefinedByback to summary
public ValueRange rangeRefinedBy(TemporalAccessor temporal)

Implements java.time.temporal.TemporalField.rangeRefinedBy.

Doc from java.time.temporal.TemporalField.rangeRefinedBy.

Get the range of valid values for this field using the temporal object to refine the result.

This uses the temporal object to find the range of valid values for the field. This is similar to range(), however this method refines the result using the temporal. For example, if the field is DAY_OF_MONTH the range method is not accurate as there are four possible month lengths, 28, 29, 30 and 31 days. Using this method with a date allows the range to be accurate, returning just one of those four options.

There are two equivalent ways of using this method. The first is to invoke this method directly. The second is to use TemporalAccessor#range(TemporalField):

  // these two lines are equivalent, but the second approach is recommended
  temporal = thisField.rangeRefinedBy(temporal);
  temporal = temporal.range(thisField);
It is recommended to use the second approach, range(TemporalField), as it is a lot clearer to read in code.

Implementations should perform any queries or calculations using the fields available in ChronoField. If the field is not supported an UnsupportedTemporalTypeException must be thrown.

Parameters
temporal:TemporalAccessor

the temporal object used to refine the result, not null

Returns:ValueRange

the range of valid values for this field, not null

Annotations
@Override
toStringback to summary
public String toString()

Overrides java.lang.Enum.toString.

Implements java.time.temporal.TemporalField.toString.

Doc from java.time.temporal.TemporalField.toString.

Gets a descriptive name for the field.

The should be of the format 'BaseOfRange', such as 'MonthOfYear', unless the field has a range of FOREVER, when only the base unit is mentioned, such as 'Year' or 'Era'.

Returns:String

the name of the field, not null

Annotations
@Override
valueOfback to summary
public static TemporalFields.HalfOfYearField valueOf(String name)
valuesback to summary
public static TemporalFields.HalfOfYearField[] values()
org.threeten.extra back to summary

private final Enum TemporalFields.HalfUnit

extends Enum<TemporalFields.HalfUnit>
implements TemporalUnit
Class Inheritance
All Implemented Interfaces
java.time.temporal.TemporalUnit

Implementation of the half-year unit.

Field Summary

Modifier and TypeField and Description
public static final TemporalFields.HalfUnit
INSTANCE

Unit that represents the concept of a week-based-year.

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public <R extends Temporal> R
addTo(R
the temporal object to adjust, not null
temporal
,
long
the amount of this unit to add, positive or negative
amount
)

Implements java.time.temporal.TemporalUnit.addTo.

Returns a copy of the specified temporal object with the specified period added.

public long
between(Temporal
the base temporal object, not null
temporal1Inclusive
,
Temporal
the other temporal object, exclusive, not null
temporal2Exclusive
)

Implements java.time.temporal.TemporalUnit.between.

Calculates the amount of time between two temporal objects.

public Duration
getDuration()

Implements java.time.temporal.TemporalUnit.getDuration.

Gets the duration of this unit, which may be an estimate.

public boolean
isDateBased()

Implements java.time.temporal.TemporalUnit.isDateBased.

Checks if this unit represents a component of a date.

public boolean
isDurationEstimated()

Implements java.time.temporal.TemporalUnit.isDurationEstimated.

Checks if the duration of the unit is an estimate.

public boolean
isSupportedBy(Temporal
the temporal object to check, not null
temporal
)

Overrides default java.time.temporal.TemporalUnit.isSupportedBy.

Checks if this unit is supported by the specified temporal object.

public boolean
isTimeBased()

Implements java.time.temporal.TemporalUnit.isTimeBased.

Checks if this unit represents a component of a time.

public String
toString()

Overrides java.lang.Enum.toString.

Implements java.time.temporal.TemporalUnit.toString.

Gets a descriptive name for the unit.

public static TemporalFields.HalfUnit
public static TemporalFields.HalfUnit[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinalvalueOf

Field Detail

INSTANCEback to summary
public static final TemporalFields.HalfUnit INSTANCE

Unit that represents the concept of a week-based-year.

Constructor Detail

HalfUnitback to summary
private HalfUnit()

Method Detail

addToback to summary
public <R extends Temporal> R addTo(R temporal, long amount)

Implements java.time.temporal.TemporalUnit.addTo.

Doc from java.time.temporal.TemporalUnit.addTo.

Returns a copy of the specified temporal object with the specified period added.

The period added is a multiple of this unit. For example, this method could be used to add "3 days" to a date by calling this method on the instance representing "days", passing the date and the period "3". The period to be added may be negative, which is equivalent to subtraction.

There are two equivalent ways of using this method. The first is to invoke this method directly. The second is to use Temporal#plus(long, TemporalUnit):

  // these two lines are equivalent, but the second approach is recommended
  temporal = thisUnit.addTo(temporal);
  temporal = temporal.plus(thisUnit);
It is recommended to use the second approach, plus(TemporalUnit), as it is a lot clearer to read in code.

Implementations should perform any queries or calculations using the units available in ChronoUnit or the fields available in ChronoField. If the unit is not supported an UnsupportedTemporalTypeException must be thrown.

Implementations must not alter the specified temporal object. Instead, an adjusted copy of the original must be returned. This provides equivalent, safe behavior for immutable and mutable implementations.

Parameters
<R>
the type of the Temporal object
temporal:R

the temporal object to adjust, not null

amount:long

the amount of this unit to add, positive or negative

Returns:R

the adjusted temporal object, not null

Annotations
@SuppressWarnings:unchecked
@Override
betweenback to summary
public long between(Temporal temporal1Inclusive, Temporal temporal2Exclusive)

Implements java.time.temporal.TemporalUnit.between.

Doc from java.time.temporal.TemporalUnit.between.

Calculates the amount of time between two temporal objects.

This calculates the amount in terms of this unit. The start and end points are supplied as temporal objects and must be of compatible types. The implementation will convert the second type to be an instance of the first type before the calculating the amount. The result will be negative if the end is before the start. For example, the amount in hours between two temporal objects can be calculated using HOURS.between(startTime, endTime).

The calculation returns a whole number, representing the number of complete units between the two temporals. For example, the amount in hours between the times 11:30 and 13:29 will only be one hour as it is one minute short of two hours.

There are two equivalent ways of using this method. The first is to invoke this method directly. The second is to use Temporal#until(Temporal, TemporalUnit):

  // these two lines are equivalent
  between = thisUnit.between(start, end);
  between = start.until(end, thisUnit);
The choice should be made based on which makes the code more readable.

For example, this method allows the number of days between two dates to be calculated:

 long daysBetween = DAYS.between(start, end);
 // or alternatively
 long daysBetween = start.until(end, DAYS);

Implementations should perform any queries or calculations using the units available in ChronoUnit or the fields available in ChronoField. If the unit is not supported an UnsupportedTemporalTypeException must be thrown. Implementations must not alter the specified temporal objects.

Parameters
temporal1Inclusive:Temporal

the base temporal object, not null

temporal2Exclusive:Temporal

the other temporal object, exclusive, not null

Returns:long

the amount of time between temporal1Inclusive and temporal2Exclusive in terms of this unit; positive if temporal2Exclusive is later than temporal1Inclusive, negative if earlier

Annotations
@Override
getDurationback to summary
public Duration getDuration()

Implements java.time.temporal.TemporalUnit.getDuration.

Doc from java.time.temporal.TemporalUnit.getDuration.

Gets the duration of this unit, which may be an estimate.

All units return a duration measured in standard nanoseconds from this method. The duration will be positive and non-zero. For example, an hour has a duration of 60 * 60 * 1,000,000,000ns.

Some units may return an accurate duration while others return an estimate. For example, days have an estimated duration due to the possibility of daylight saving time changes. To determine if the duration is an estimate, use isDurationEstimated().

Returns:Duration

the duration of this unit, which may be an estimate, not null

Annotations
@Override
isDateBasedback to summary
public boolean isDateBased()

Implements java.time.temporal.TemporalUnit.isDateBased.

Doc from java.time.temporal.TemporalUnit.isDateBased.

Checks if this unit represents a component of a date.

A date is time-based if it can be used to imply meaning from a date. It must have a duration that is an integral multiple of the length of a standard day. Note that it is valid for both isDateBased() and isTimeBased() to return false, such as when representing a unit like 36 hours.

Returns:boolean

true if this unit is a component of a date

Annotations
@Override
isDurationEstimatedback to summary
public boolean isDurationEstimated()

Implements java.time.temporal.TemporalUnit.isDurationEstimated.

Doc from java.time.temporal.TemporalUnit.isDurationEstimated.

Checks if the duration of the unit is an estimate.

All units have a duration, however the duration is not always accurate. For example, days have an estimated duration due to the possibility of daylight saving time changes. This method returns true if the duration is an estimate and false if it is accurate. Note that accurate/estimated ignores leap seconds.

Returns:boolean

true if the duration is estimated, false if accurate

Annotations
@Override
isSupportedByback to summary
public boolean isSupportedBy(Temporal temporal)

Overrides default java.time.temporal.TemporalUnit.isSupportedBy.

Doc from java.time.temporal.TemporalUnit.isSupportedBy.

Checks if this unit is supported by the specified temporal object.

This checks that the implementing date-time can add/subtract this unit. This can be used to avoid throwing an exception.

This default implementation derives the value using Temporal#plus(long, TemporalUnit).

Parameters
temporal:Temporal

the temporal object to check, not null

Returns:boolean

true if the unit is supported

Annotations
@Override
isTimeBasedback to summary
public boolean isTimeBased()

Implements java.time.temporal.TemporalUnit.isTimeBased.

Doc from java.time.temporal.TemporalUnit.isTimeBased.

Checks if this unit represents a component of a time.

A unit is time-based if it can be used to imply meaning from a time. It must have a duration that divides into the length of a standard day without remainder. Note that it is valid for both isDateBased() and isTimeBased() to return false, such as when representing a unit like 36 hours.

Returns:boolean

true if this unit is a component of a time

Annotations
@Override
toStringback to summary
public String toString()

Overrides java.lang.Enum.toString.

Implements java.time.temporal.TemporalUnit.toString.

Doc from java.time.temporal.TemporalUnit.toString.

Gets a descriptive name for the unit.

This should be in the plural and upper-first camel case, such as 'Days' or 'Minutes'.

Returns:String

the name of this unit, not null

Annotations
@Override
valueOfback to summary
public static TemporalFields.HalfUnit valueOf(String name)
valuesback to summary
public static TemporalFields.HalfUnit[] values()