java.io.Serializable
, java.lang.Comparable<AmPm>
, java.time.temporal.TemporalAccessor
, java.time.temporal.TemporalAdjuster
public enum AmPm extends java.lang.Enum<AmPm> implements java.time.temporal.TemporalAccessor, java.time.temporal.TemporalAdjuster
AmPm
is an enum representing the half-day concepts of AM and PM.
AM is defined as from 00:00 to 11:59, while PM is defined from 12:00 to 23:59.
All date-time fields have an int
value.
The int
value follows Calendar
, assigning 0 to AM and 1 to PM.
It is recommended that applications use the enum rather than the int
value
to ensure code clarity.
Do not use ordinal()
to obtain the numeric representation of AmPm
.
Use getValue()
instead.
This enum represents a common concept that is found in many calendar systems. As such, this enum may be used by any calendar system that has the AM/PM concept defined exactly equivalent to the ISO calendar system.
Enum Constant | Description |
---|---|
AM |
The singleton instance for the morning, AM - ante meridiem.
|
PM |
The singleton instance for the afternoon, PM - post meridiem.
|
Modifier and Type | Method | Description |
---|---|---|
java.time.temporal.Temporal |
adjustInto(java.time.temporal.Temporal temporal) |
Adjusts the specified temporal object to have this am-pm value.
|
static AmPm |
from(java.time.temporal.TemporalAccessor temporal) |
Obtains an instance of
AmPm from a temporal object. |
int |
get(java.time.temporal.TemporalField field) |
Gets the value of the specified field from this am-pm as an
int . |
java.lang.String |
getDisplayName(java.time.format.TextStyle style,
java.util.Locale locale) |
Gets the textual representation, such as 'AM' or 'PM'.
|
long |
getLong(java.time.temporal.TemporalField field) |
Gets the value of the specified field from this am-pm as a
long . |
int |
getValue() |
Gets the AM/PM
int value. |
boolean |
isSupported(java.time.temporal.TemporalField field) |
Checks if the specified field is supported.
|
static AmPm |
of(int amPmValue) |
Obtains an instance of
AmPm from an int value. |
static AmPm |
ofHour(int hourOfDay) |
Obtains an instance of
AmPm from an hour-of-day. |
<R> R |
query(java.time.temporal.TemporalQuery<R> query) |
Queries this am-pm using the specified query.
|
java.time.temporal.ValueRange |
range(java.time.temporal.TemporalField field) |
Gets the range of valid values for the specified field.
|
static AmPm |
valueOf(java.lang.String name) |
Returns the enum constant of this type with the specified name.
|
static AmPm[] |
values() |
Returns an array containing the constants of this enum type, in
the order they are declared.
|
public static final AmPm AM
0
.public static final AmPm PM
1
.public static AmPm[] values()
for (AmPm c : AmPm.values()) System.out.println(c);
public static AmPm valueOf(java.lang.String name)
name
- the name of the enum constant to be returned.java.lang.IllegalArgumentException
- if this enum type has no constant with the specified namejava.lang.NullPointerException
- if the argument is nullpublic static AmPm of(int amPmValue)
AmPm
from an int
value.
AmPm
is an enum representing before and after midday.
This factory allows the enum to be obtained from the int
value.
The int
value follows Calendar
, assigning 0 to AM and 1 to PM.
amPmValue
- the AM/PM value to represent, from 0 (AM) to 1 (PM)java.time.DateTimeException
- if the am-pm is invalidpublic static AmPm ofHour(int hourOfDay)
AmPm
from an hour-of-day.
AmPm
is an enum representing before and after midday.
This factory allows the enum to be obtained from the hour-of-day value, from 0 to 23.
hourOfDay
- the hour-of-day to extract from, from 0 to 23java.time.DateTimeException
- if the hour-of-day is invalidpublic static AmPm from(java.time.temporal.TemporalAccessor temporal)
AmPm
from a temporal object.
This obtains an am-pm based on the specified temporal.
A TemporalAccessor
represents an arbitrary set of date and time information,
which this factory converts to an instance of AmPm
.
The conversion extracts the AMPM_OF_DAY
field.
This method matches the signature of the functional interface TemporalQuery
allowing it to be used as a query via method reference, AmPm::from
.
temporal
- the temporal object to convert, not nulljava.time.DateTimeException
- if unable to convert to a AmPm
public int getValue()
int
value.
The values are numbered following Calendar
, assigning 0 to AM and 1 to PM.
public java.lang.String getDisplayName(java.time.format.TextStyle style, java.util.Locale locale)
This returns the textual name used to identify the am-pm, suitable for presentation to the user. The parameters control the style of the returned text and the locale.
If no textual mapping is found then the numeric value
is returned.
style
- the length of the text required, not nulllocale
- the locale to use, not nullpublic boolean isSupported(java.time.temporal.TemporalField field)
This checks if this am-pm can be queried for the specified field.
If false, then calling the range
and
get
methods will throw an exception.
If the field is AMPM_OF_DAY
then
this method returns true.
All other ChronoField
instances will return false.
If the field is not a ChronoField
, then the result of this method
is obtained by invoking TemporalField.isSupportedBy(TemporalAccessor)
passing this
as the argument.
Whether the field is supported is determined by the field.
isSupported
in interface java.time.temporal.TemporalAccessor
field
- the field to check, null returns falsepublic java.time.temporal.ValueRange range(java.time.temporal.TemporalField field)
The range object expresses the minimum and maximum valid values for a field. This am-pm is used to enhance the accuracy of the returned range. If it is not possible to return the range, because the field is not supported or for some other reason, an exception is thrown.
If the field is AMPM_OF_DAY
then the
range of the am-pm, from 0 to 1, will be returned.
All other ChronoField
instances will throw an UnsupportedTemporalTypeException
.
If the field is not a ChronoField
, then the result of this method
is obtained by invoking TemporalField.rangeRefinedBy(TemporalAccessor)
passing this
as the argument.
Whether the range can be obtained is determined by the field.
range
in interface java.time.temporal.TemporalAccessor
field
- the field to query the range for, not nulljava.time.DateTimeException
- if the range for the field cannot be obtainedjava.time.temporal.UnsupportedTemporalTypeException
- if the field is not supportedpublic int get(java.time.temporal.TemporalField field)
int
.
This queries this am-pm for the value for the specified field. The returned value will always be within the valid range of values for the field. If it is not possible to return the value, because the field is not supported or for some other reason, an exception is thrown.
If the field is AMPM_OF_DAY
then the
value of the am-pm, from 0 (AM) to 1 (PM), will be returned.
All other ChronoField
instances will throw an UnsupportedTemporalTypeException
.
If the field is not a ChronoField
, then the result of this method
is obtained by invoking TemporalField.getFrom(TemporalAccessor)
passing this
as the argument. Whether the value can be obtained,
and what the value represents, is determined by the field.
get
in interface java.time.temporal.TemporalAccessor
field
- the field to get, not nulljava.time.DateTimeException
- if a value for the field cannot be obtained or
the value is outside the range of valid values for the fieldjava.time.temporal.UnsupportedTemporalTypeException
- if the field is not supported or
the range of values exceeds an int
java.lang.ArithmeticException
- if numeric overflow occurspublic long getLong(java.time.temporal.TemporalField field)
long
.
This queries this am-pm for the value for the specified field. If it is not possible to return the value, because the field is not supported or for some other reason, an exception is thrown.
If the field is AMPM_OF_DAY
then the
value of the am-pm, from 0 (AM) to 1 (PM), will be returned.
All other ChronoField
instances will throw an UnsupportedTemporalTypeException
.
If the field is not a ChronoField
, then the result of this method
is obtained by invoking TemporalField.getFrom(TemporalAccessor)
passing this
as the argument. Whether the value can be obtained,
and what the value represents, is determined by the field.
getLong
in interface java.time.temporal.TemporalAccessor
field
- the field to get, not nulljava.time.DateTimeException
- if a value for the field cannot be obtainedjava.time.temporal.UnsupportedTemporalTypeException
- if the field is not supportedjava.lang.ArithmeticException
- if numeric overflow occurspublic <R> R query(java.time.temporal.TemporalQuery<R> query)
This queries this am-pm using the specified query strategy object.
The TemporalQuery
object defines the logic to be used to
obtain the result. Read the documentation of the query to understand
what the result of this method will be.
The result of this method is obtained by invoking the
TemporalQuery.queryFrom(TemporalAccessor)
method on the
specified query passing this
as the argument.
query
in interface java.time.temporal.TemporalAccessor
R
- the type of the resultquery
- the query to invoke, not nulljava.time.DateTimeException
- if unable to query (defined by the query)java.lang.ArithmeticException
- if numeric overflow occurs (defined by the query)public java.time.temporal.Temporal adjustInto(java.time.temporal.Temporal temporal)
This returns a temporal object of the same observable type as the input with the am-pm changed to be the same as this.
The adjustment is equivalent to using Temporal.with(TemporalField, long)
passing ChronoField.AMPM_OF_DAY
as the field.
Note that this adjusts forwards or backwards within a day.
In most cases, it is clearer to reverse the calling pattern by using
Temporal.with(TemporalAdjuster)
:
// these two lines are equivalent, but the second approach is recommended temporal = thisAmPm.adjustInto(temporal); temporal = temporal.with(thisAmPm);
This instance is immutable and unaffected by this method call.
adjustInto
in interface java.time.temporal.TemporalAdjuster
temporal
- the target object to be adjusted, not nulljava.time.DateTimeException
- if unable to make the adjustmentjava.lang.ArithmeticException
- if numeric overflow occursCopyright © 2010–2018 ThreeTen.org. All rights reserved.