final class MonthDay extends TemporalAccessor with TemporalAdjuster with Ordered[MonthDay] with Serializable
A month-day in the ISO-8601 calendar system, such as --12-03
.
MonthDay
is an immutable date-time object that represents the combination
of a year and month. Any field that can be derived from a month and day, such as
quarter-of-year, can be obtained.
This class does not store or represent a year, time or time-zone.
For example, the value "December 3rd" can be stored in a MonthDay
.
Since a MonthDay
does not possess a year, the leap day of
February 29th is considered valid.
This class implements TemporalAccessor
rather than Temporal
.
This is because it is not possible to define whether February 29th is valid or not
without external information, preventing the implementation of plus/minus.
Related to this, MonthDay
only provides access to query and set the fields
MONTH_OF_YEAR
and DAY_OF_MONTH
.
The ISO-8601 calendar system is the modern civil calendar system used today in most of the world. It is equivalent to the proleptic Gregorian calendar system, in which today's rules for leap years are applied for all time. For most applications written today, the ISO-8601 rules are entirely suitable. However, any application that makes use of historical dates, and requires them to be accurate will find the ISO-8601 approach unsuitable.
Specification for implementors
This class is immutable and thread-safe.
- Annotations
- @SerialVersionUID()
- Alphabetic
- By Inheritance
- MonthDay
- Serializable
- Ordered
- Comparable
- TemporalAdjuster
- TemporalAccessor
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
def
<(that: MonthDay): Boolean
- Definition Classes
- Ordered
-
def
<=(that: MonthDay): Boolean
- Definition Classes
- Ordered
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
>(that: MonthDay): Boolean
- Definition Classes
- Ordered
-
def
>=(that: MonthDay): Boolean
- Definition Classes
- Ordered
-
def
adjustInto(temporal: Temporal): Temporal
Adjusts the specified temporal object to have this month-day.
Adjusts the specified temporal object to have this month-day.
This returns a temporal object of the same observable type as the input with the month and day-of-month changed to be the same as this.
The adjustment is equivalent to using
long)
twice, passingChronoField#MONTH_OF_YEAR
andChronoField#DAY_OF_MONTH
as the fields. If the specified temporal object does not use the ISO calendar system then aDateTimeException
is thrown.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 = thisMonthDay.adjustInto(temporal); temporal = temporal.with(thisMonthDay);
This instance is immutable and unaffected by this method call.
- temporal
the target object to be adjusted, not null
- returns
the adjusted object, not null
- Definition Classes
- MonthDay → TemporalAdjuster
- Exceptions thrown
ArithmeticException
if numeric overflow occursDateTimeException
if unable to make the adjustment
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
atYear(year: Int): LocalDate
Combines this month-day with a year to create a
LocalDate
.Combines this month-day with a year to create a
LocalDate
.This returns a
LocalDate
formed from this month-day and the specified year.A month-day of February 29th will be adjusted to February 28th in the resulting date if the year is not a leap year.
This instance is immutable and unaffected by this method call.
- year
the year to use, from MIN_YEAR to MAX_YEAR
- returns
the local date formed from this month-day and the specified year, not null
- Exceptions thrown
DateTimeException
if the year is outside the valid range of years
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
compare(other: MonthDay): Int
Compares this month-day to another month-day.
Compares this month-day to another month-day.
The comparison is based first on value of the month, then on the value of the day. It is "consistent with equals", as defined by
Comparable
.- other
the other month-day to compare to, not null
- returns
the comparator value, negative if less, positive if greater
- Definition Classes
- MonthDay → Ordered
-
def
compareTo(that: MonthDay): Int
- Definition Classes
- Ordered → Comparable
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(obj: Any): Boolean
Checks if this month-day is equal to another month-day.
Checks if this month-day is equal to another month-day.
The comparison is based on the time-line position of the month-day within a year.
- obj
the object to check, null returns false
- returns
true if this is equal to the other month-day
- Definition Classes
- MonthDay → AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
format(formatter: DateTimeFormatter): String
Outputs this month-day as a
String
using the formatter.Outputs this month-day as a
String
using the formatter.This month-day will be passed to the formatter
print method
.- formatter
the formatter to use, not null
- returns
the formatted month-day string, not null
- Exceptions thrown
DateTimeException
if an error occurs during printing
-
def
get(field: TemporalField): Int
Gets the value of the specified field from this month-day as an
int
.Gets the value of the specified field from this month-day as an
int
.This queries this month-day 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 a
ChronoField
then the query is implemented here. Thesupported fields
will return valid values based on this month-day. All otherChronoField
instances will throw aDateTimeException
.If the field is not a
ChronoField
, then the result of this method is obtained by invokingTemporalField.getFrom(TemporalAccessor)
passingthis
as the argument. Whether the value can be obtained, and what the value represents, is determined by the field.- field
the field to get, not null
- returns
the value for the field
- Definition Classes
- MonthDay → TemporalAccessor
- Exceptions thrown
ArithmeticException
if numeric overflow occursDateTimeException
if a value for the field cannot be obtained
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
getDayOfMonth: Int
Gets the day-of-month field.
Gets the day-of-month field.
This method returns the primitive
int
value for the day-of-month.- returns
the day-of-month, from 1 to 31
-
def
getLong(field: TemporalField): Long
Gets the value of the specified field from this month-day as a
long
.Gets the value of the specified field from this month-day as a
long
.This queries this month-day 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 a
ChronoField
then the query is implemented here. Thesupported fields
will return valid values based on this month-day. All otherChronoField
instances will throw aDateTimeException
.If the field is not a
ChronoField
, then the result of this method is obtained by invokingTemporalField.getFrom(TemporalAccessor)
passingthis
as the argument. Whether the value can be obtained, and what the value represents, is determined by the field.- field
the field to get, not null
- returns
the value for the field
- Definition Classes
- MonthDay → TemporalAccessor
- Exceptions thrown
ArithmeticException
if numeric overflow occursDateTimeException
if a value for the field cannot be obtained
-
def
getMonth: Month
Gets the month-of-year field using the
Month
enum.Gets the month-of-year field using the
Month
enum.This method returns the enum
Month
for the month. This avoids confusion as to whatint
values mean. If you need access to the primitiveint
value then the enum provides theint value
.- returns
the month-of-year, not null
- See also
#getMonthValue()
-
def
getMonthValue: Int
Gets the month-of-year field from 1 to 12.
Gets the month-of-year field from 1 to 12.
This method returns the month as an
int
from 1 to 12. Application code is frequently clearer if the enumMonth
is used by calling#getMonth()
.- returns
the month-of-year, from 1 to 12
- See also
#getMonth()
-
def
hashCode(): Int
A hash code for this month-day.
A hash code for this month-day.
- returns
a suitable hash code
- Definition Classes
- MonthDay → AnyRef → Any
-
def
isAfter(other: MonthDay): Boolean
Is this month-day after the specified month-day.
Is this month-day after the specified month-day.
- other
the other month-day to compare to, not null
- returns
true if this is after the specified month-day
-
def
isBefore(other: MonthDay): Boolean
Is this month-day before the specified month-day.
Is this month-day before the specified month-day.
- other
the other month-day to compare to, not null
- returns
true if this point is before the specified month-day
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isSupported(field: TemporalField): Boolean
Checks if the specified field is supported.
Checks if the specified field is supported.
This checks if this month-day can be queried for the specified field. If false, then calling the
range
andget
methods will throw an exception.If the field is a
ChronoField
then the query is implemented here. Thesupported fields
will return valid values based on this date-time. The supported fields are:MONTH_OF_YEAR
YEAR
All other
ChronoField
instances will return false.If the field is not a
ChronoField
, then the result of this method is obtained by invokingTemporalField.isSupportedBy(TemporalAccessor)
passingthis
as the argument. Whether the field is supported is determined by the field.- field
the field to check, null returns false
- returns
true if the field is supported on this month-day, false if not
- Definition Classes
- MonthDay → TemporalAccessor
-
def
isValidYear(year: Int): Boolean
Checks if the year is valid for this month-day.
Checks if the year is valid for this month-day.
This method checks whether this month and day and the input year form a valid date. This can only return false for February 29th.
- year
the year to validate, an out of range value returns false
- returns
true if the year is valid for this month-day
- See also
Year#isValidMonthDay(MonthDay)
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
query[R >: Null](query: TemporalQuery[R]): R
Queries this month-day using the specified query.
Queries this month-day using the specified query.
This queries this month-day 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 passingthis
as the argument.- R
the type of the result
- query
the query to invoke, not null
- returns
the query result, null may be returned (defined by the query)
- Definition Classes
- MonthDay → TemporalAccessor
- Exceptions thrown
ArithmeticException
if numeric overflow occurs (defined by the query)DateTimeException
if unable to query (defined by the query)
-
def
range(field: TemporalField): ValueRange
Gets the range of valid values for the specified field.
Gets the range of valid values for the specified field.
The range object expresses the minimum and maximum valid values for a field. This month-day 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 a
ChronoField
then the query is implemented here. Thesupported fields
will return appropriate range instances. All otherChronoField
instances will throw aDateTimeException
.If the field is not a
ChronoField
, then the result of this method is obtained by invokingTemporalField.rangeRefinedBy(TemporalAccessor)
passingthis
as the argument. Whether the range can be obtained is determined by the field.- field
the field to query the range for, not null
- returns
the range of valid values for the field, not null
- Definition Classes
- MonthDay → TemporalAccessor
- Exceptions thrown
DateTimeException
if the range for the field cannot be obtained
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
Outputs this month-day as a
String
, such as--12-03
.Outputs this month-day as a
String
, such as--12-03
.The output will be in the format
--MM-dd
:- returns
a string representation of this month-day, not null
- Definition Classes
- MonthDay → AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
with(month: Month): MonthDay
Returns a copy of this
MonthDay
with the month-of-year altered.Returns a copy of this
MonthDay
with the month-of-year altered.This returns a month-day with the specified month. If the day-of-month is invalid for the specified month, the day will be adjusted to the last valid day-of-month.
This instance is immutable and unaffected by this method call.
- month
the month-of-year to set in the returned month-day, not null
- returns
a { @code MonthDay} based on this month-day with the requested month, not null
-
def
withDayOfMonth(dayOfMonth: Int): MonthDay
Returns a copy of this
MonthDay
with the day-of-month altered.Returns a copy of this
MonthDay
with the day-of-month altered.This returns a month-day with the specified day-of-month. If the day-of-month is invalid for the month, an exception is thrown.
This instance is immutable and unaffected by this method call.
- dayOfMonth
the day-of-month to set in the return month-day, from 1 to 31
- returns
a { @code MonthDay} based on this month-day with the requested day, not null
- Exceptions thrown
DateTimeException
if the day-of-month is invalid for the month
-
def
withMonth(month: Int): MonthDay
Returns a copy of this
MonthDay
with the month-of-year altered.Returns a copy of this
MonthDay
with the month-of-year altered.This returns a month-day with the specified month. If the day-of-month is invalid for the specified month, the day will be adjusted to the last valid day-of-month.
This instance is immutable and unaffected by this method call.
- month
the month-of-year to set in the returned month-day, from 1 (January) to 12 (December)
- returns
a { @code MonthDay} based on this month-day with the requested month, not null
- Exceptions thrown
DateTimeException
if the month-of-year value is invalid