- 所有已实现的接口:
Serializable,Comparable<YearMonth>,Temporal,TemporalAccessor,TemporalAdjuster
2007-12 。
YearMonth 是一个不可变的日期时间对象,表示年和月的组合。任何可以从年月导出的字段,比如quarter-of-year,都可以得到。
此类不存储或表示日期、时间或时区。例如,值“2007 年 10 月”可以存储在 YearMonth 中。
ISO-8601 日历系统是当今世界大部分地区使用的现代民用日历系统。它相当于公历系统,在所有时间都适用今天的闰年规则。对于当今编写的大多数应用程序,ISO-8601 规则完全适用。然而,任何使用历史日期并要求它们准确的应用程序都会发现 ISO-8601 方法不合适。
这是一个value-based类;程序员应该将 equal 的实例视为可互换的,并且不应使用实例进行同步,否则可能会发生不可预测的行为。例如,在未来的版本中,同步可能会失败。 equals 方法应该用于比较。
- 实现要求:
- 这个类是不可变的和线程安全的。
- 自从:
- 1.8
- 参见:
-
方法总结
修饰符和类型方法描述adjustInto(Temporal temporal) 将指定的时间对象调整为具有今年-月份。atDay(int dayOfMonth) 将今年的月份与月份的某一天相结合以创建LocalDate。在月底返回LocalDate。int将今年月份与另一年月份进行比较。boolean检查这个年月是否等于另一个年月。format(DateTimeFormatter formatter) 使用指定的格式化程序格式化今年-月份。static YearMonthfrom(TemporalAccessor temporal) 从时间对象中获取YearMonth的实例。intget(TemporalField field) 从这一年月中获取指定字段的值作为int。longgetLong(TemporalField field) 从这一年月中获取指定字段的值作为long。getMonth()使用Month枚举获取月份字段。int获取从 1 到 12 的月份字段。intgetYear()获取年份字段。inthashCode()今年月份的哈希码。boolean检查此年月是否在指定的年月之后。boolean检查此年月是否在指定的年月之前。boolean根据 ISO proleptic 日历系统规则,检查年份是否为闰年。booleanisSupported(TemporalField field) 检查是否支持指定的字段。booleanisSupported(TemporalUnit unit) 检查是否支持指定的单位。booleanisValidDay(int dayOfMonth) 检查月份中的某一天是否对今年的月份有效。int返回月份的长度,考虑年份。int返回年份的长度。minus(long amountToSubtract, TemporalUnit unit) 返回减去指定数量的今年-月份的副本。minus(TemporalAmount amountToSubtract) 返回减去指定数量的今年-月份的副本。minusMonths(long monthsToSubtract) 返回此YearMonth的副本,并减去指定的月数。minusYears(long yearsToSubtract) 返回此YearMonth的副本,并减去指定的年数。static YearMonthnow()从默认时区的系统时钟获取当前年月。static YearMonth从指定时钟获取当前年月。static YearMonth从指定时区的系统时钟获取当前年月。static YearMonthof(int year, int month) 从年份和月份中获取YearMonth的实例。static YearMonth从年份和月份中获取YearMonth的实例。static YearMonthparse(CharSequence text) 从2007-12等文本字符串中获取YearMonth的实例。static YearMonthparse(CharSequence text, DateTimeFormatter formatter) 使用特定格式化程序从文本字符串中获取YearMonth的实例。plus(long amountToAdd, TemporalUnit unit) 返回添加了指定数量的今年-月份的副本。plus(TemporalAmount amountToAdd) 返回添加了指定数量的今年-月份的副本。plusMonths(long monthsToAdd) 返回此YearMonth的副本,并添加了指定的月数。plusYears(long yearsToAdd) 返回此YearMonth的副本,并添加了指定的年数。<R> Rquery(TemporalQuery<R> query) 使用指定查询查询今年-月份。range(TemporalField field) 获取指定字段的有效值范围。toString()将今年-月份输出为String,例如2007-12。longuntil(Temporal endExclusive, TemporalUnit unit) 根据指定的单位计算到另一个年月的时间量。with(TemporalAdjuster adjuster) 返回今年-月份的调整副本。with(TemporalField field, long newValue) 返回此年月的副本,并将指定字段设置为新值。withMonth(int month) 返回此YearMonth的副本,其中更改了月份。withYear(int year) 返回此YearMonth的副本,并更改年份。
-
方法详情
-
now
从默认时区的系统时钟获取当前年月。这将查询默认时区中的
system clock以获取当前年月。使用此方法将阻止使用备用时钟进行测试的能力,因为时钟是硬编码的。
- 返回:
- 使用系统时钟和默认时区的当前年月,不为空
-
now
从指定时区的系统时钟获取当前年月。这将查询
system clock以获取当前年月。指定时区避免了对默认时区的依赖。使用此方法将阻止使用备用时钟进行测试的能力,因为时钟是硬编码的。
- 参数:
zone- 要使用的区域 ID,不为空- 返回:
- 使用系统时钟的当前年月,不为空
-
now
从指定时钟获取当前年月。这将查询指定的时钟以获取当前年月。使用此方法允许使用备用时钟进行测试。可以使用
dependency injection引入备用时钟。- 参数:
clock- 使用的时钟,不为空- 返回:
- 当前年月,不为空
-
of
从年份和月份中获取YearMonth的实例。- 参数:
year- 表示的年份,从 MIN_YEAR 到 MAX_YEARmonth- 要表示的月份,不为空- 返回:
- 年月,不为空
- 抛出:
DateTimeException- 如果年份值无效
-
of
从年份和月份中获取YearMonth的实例。- 参数:
year- 表示的年份,从 MIN_YEAR 到 MAX_YEARmonth- 要表示的月份,从 1(一月)到 12(十二月)- 返回:
- 年月,不为空
- 抛出:
DateTimeException- 如果任一字段值无效
-
from
从时间对象中获取YearMonth的实例。这将根据指定的时间获得年月。
TemporalAccessor表示一组任意的日期和时间信息,该工厂将其转换为YearMonth的一个实例。转换提取
YEAR和MONTH_OF_YEAR字段。仅当时间对象具有 ISO 年表或可以转换为LocalDate时才允许提取。此方法与功能接口
TemporalQuery的签名相匹配,允许它通过方法参考YearMonth::from用作查询。- 参数:
temporal- 要转换的时间对象,不为空- 返回:
- 年月,不为空
- 抛出:
DateTimeException- 如果无法转换为YearMonth
-
parse
从2007-12等文本字符串中获取YearMonth的实例。该字符串必须表示有效的年月。格式必须是
uuuu-MM。 0000 到 9999 范围之外的年份必须以加号或减号作为前缀。- 参数:
text- 要解析的文本,例如“2007-12”,不为空- 返回:
- 解析的年月,不为空
- 抛出:
DateTimeParseException- 如果无法解析文本
-
parse
使用特定格式化程序从文本字符串中获取YearMonth的实例。使用格式化程序解析文本,返回年月。
- 参数:
text- 要解析的文本,不为空formatter- 要使用的格式化程序,不为空- 返回:
- 解析的年月,不为空
- 抛出:
DateTimeParseException- 如果无法解析文本
-
isSupported
检查是否支持指定的字段。这将检查是否可以查询指定字段的年月。如果为 false,则调用
range、get和with(TemporalField, long)方法将抛出异常。如果该字段是一个
ChronoField那么查询就在这里实现。支持的字段是:MONTH_OF_YEARPROLEPTIC_MONTHYEAR_OF_ERAYEARERA
ChronoField实例将返回 false。如果该字段不是
ChronoField,则通过调用TemporalField.isSupportedBy(TemporalAccessor)传递this作为参数来获得此方法的结果。字段是否支持由字段决定。- 指定者:
isSupported在接口TemporalAccessor中- 参数:
field- 要检查的字段,null 返回 false- 返回:
- 如果该字段在本年月支持,则为 true,否则为 false
-
isSupported
检查是否支持指定的单位。这将检查指定的单位是否可以添加到今年月份,或从中减去。如果为 false,则调用
plus(long, TemporalUnit)和minus方法将抛出异常。如果单位是
ChronoUnit那么查询就是在这里实现的。支持的单位有:MONTHSYEARSDECADESCENTURIESMILLENNIAERAS
ChronoUnit实例将返回 false。如果单位不是
ChronoUnit,则通过调用TemporalUnit.isSupportedBy(Temporal)传递this作为参数来获得此方法的结果。是否支持该单元由单元决定。- 指定者:
isSupported在接口Temporal中- 参数:
unit- 要检查的单位,null 返回 false- 返回:
- 如果可以添加/减去单位,则为 true,否则为 false
-
range
获取指定字段的有效值范围。范围对象表示字段的最小和最大有效值。这个年月用于提高返回范围的准确性。如果由于不支持该字段或其他原因而无法返回范围,则会抛出异常。
如果该字段是一个
ChronoField那么查询就在这里实现。supported fields将返回适当的范围实例。所有其他ChronoField实例将抛出UnsupportedTemporalTypeException。如果该字段不是
ChronoField,则通过调用TemporalField.rangeRefinedBy(TemporalAccessor)传递this作为参数来获得此方法的结果。能否获取范围由字段决定。- 指定者:
range在接口TemporalAccessor中- 参数:
field- 查询范围的字段,不为空- 返回:
- 该字段的有效值范围,不为空
- 抛出:
DateTimeException- 如果无法获得该字段的范围UnsupportedTemporalTypeException- 如果不支持该字段
-
get
从这一年月中获取指定字段的值作为int。这会在今年-月份查询指定字段的值。返回值将始终在该字段的有效值范围内。如果由于不支持该字段或其他原因而无法返回该值,则会抛出异常。
如果该字段是一个
ChronoField那么查询就在这里实现。supported fields将根据今年月份返回有效值,但PROLEPTIC_MONTH除外,它太大而无法放入int并抛出DateTimeException。所有其他ChronoField实例将抛出UnsupportedTemporalTypeException。如果该字段不是
ChronoField,则通过调用TemporalField.getFrom(TemporalAccessor)传递this作为参数来获得此方法的结果。能否获取到该值,该值代表什么,由字段决定。- 指定者:
get在接口TemporalAccessor中- 参数:
field- 要获取的字段,不为空- 返回:
- 该字段的值
- 抛出:
DateTimeException- 如果无法获取该字段的值或该值超出该字段的有效值范围UnsupportedTemporalTypeException- 如果不支持该字段或值的范围超过intArithmeticException- 如果发生数字溢出
-
getLong
从这一年月中获取指定字段的值作为long。这会在今年-月份查询指定字段的值。如果由于不支持该字段或其他原因而无法返回该值,则会抛出异常。
如果该字段是一个
ChronoField那么查询就在这里实现。supported fields将返回基于此年月的有效值。所有其他ChronoField实例将抛出UnsupportedTemporalTypeException。如果该字段不是
ChronoField,则通过调用TemporalField.getFrom(TemporalAccessor)传递this作为参数来获得此方法的结果。能否获取到该值,该值代表什么,由字段决定。- 指定者:
getLong在接口TemporalAccessor中- 参数:
field- 要获取的字段,不为空- 返回:
- 该字段的值
- 抛出:
DateTimeException- 如果无法获得该字段的值UnsupportedTemporalTypeException- 如果不支持该字段ArithmeticException- 如果发生数字溢出
-
getYear
public int getYear()获取年份字段。此方法返回年份的原始
int值。根据
get(YEAR),此方法返回的年份是预估的。- 返回:
- 年份,从 MIN_YEAR 到 MAX_YEAR
-
getMonthValue
public int getMonthValue()获取从 1 到 12 的月份字段。此方法将月份作为
int从 1 到 12 返回。如果通过调用getMonth()使用枚举Month,应用程序代码通常会更清晰。- 返回:
- 一年中的月份,从 1 到 12
- 参见:
-
getMonth
- 返回:
- 月份,不为空
- 参见:
-
isLeapYear
public boolean isLeapYear()根据 ISO proleptic 日历系统规则,检查年份是否为闰年。此方法在整个时间线上应用当前的闰年规则。一般来说,如果年份可以被四整除而没有余数,则为闰年。但是,能被 100 整除的年份不是闰年,但能被 400 整除的年份除外。
例如,1904 是闰年,它可以被 4 整除。1900 不是闰年,因为它可以被 100 整除,但是 2000 是闰年,因为它可以被 400 整除。
计算是有前瞻性的——将相同的规则应用到遥远的未来和遥远的过去。这在历史上是不准确的,但对于 ISO-8601 标准是正确的。
- 返回:
- 如果年份是闰年则为 true,否则为 false
-
isValidDay
public boolean isValidDay(int dayOfMonth) 检查月份中的某一天是否对今年的月份有效。此方法检查今年和月份以及输入的日期是否构成有效日期。
- 参数:
dayOfMonth- 要验证的日期,从 1 到 31,无效值返回 false- 返回:
- 如果日期对本年月有效,则为真
-
lengthOfMonth
public int lengthOfMonth()返回月份的长度,考虑年份。这将以天为单位返回月份的长度。例如,一月的日期将返回 31。
- 返回:
- 以天为单位的月份长度,从 28 到 31
-
lengthOfYear
public int lengthOfYear()返回年份的长度。这将返回以天为单位的年份长度,365 或 366。
- 返回:
- 如果年份是闰年则为 366,否则为 365
-
with
返回今年-月份的调整副本。这将返回一个
YearMonth,基于这个,调整了年月。使用指定的调整器策略对象进行调整。阅读调整器的文档以了解将进行的调整。一个简单的调整器可能只是设置其中一个字段,例如年份字段。更复杂的调节器可能会将年月设置为哈雷彗星将经过地球的下个月。
此方法的结果是通过在指定的调节器上调用
TemporalAdjuster.adjustInto(Temporal)方法并将this作为参数传递来获得的。此实例是不可变的,不受此方法调用的影响。
- 指定者:
with在接口Temporal中- 参数:
adjuster- 要使用的调节器,不为空- 返回:
-
a
YearMonth基于this并进行了调整,不为空 - 抛出:
DateTimeException- 如果无法进行调整ArithmeticException- 如果发生数字溢出
-
with
返回此年月的副本,并将指定字段设置为新值。这将返回一个
YearMonth,基于这个,指定字段的值已更改。这可用于更改任何支持的字段,例如年或月。如果无法设置该值,因为不支持该字段或出于其他原因,则会抛出异常。如果该字段是
ChronoField则在此处执行调整。支持的字段行为如下:MONTH_OF_YEAR- 返回具有指定月份的YearMonth。年份将保持不变。PROLEPTIC_MONTH- 返回具有指定预期月份的YearMonth。这完全取代了该对象的年份和月份。YEAR_OF_ERA- 返回具有指定年份的YearMonth月份和时代将保持不变。YEAR- 返回具有指定年份的YearMonth。月份将保持不变。ERA- 返回具有指定纪元的YearMonth。时代的月份和年份将保持不变。
在所有情况下,如果新值超出该字段的有效值范围,则会抛出
DateTimeException。所有其他
ChronoField实例将抛出UnsupportedTemporalTypeException。如果该字段不是
ChronoField,则通过调用TemporalField.adjustInto(Temporal, long)传递this作为参数来获得此方法的结果。在这种情况下,该字段决定是否以及如何调整瞬间。此实例是不可变的,不受此方法调用的影响。
- 指定者:
with在接口Temporal中- 参数:
field- 要在结果中设置的字段,不为空newValue- 结果中字段的新值- 返回:
-
基于
this的YearMonth具有指定的字段集,不为空 - 抛出:
DateTimeException- 如果无法设置字段UnsupportedTemporalTypeException- 如果不支持该字段ArithmeticException- 如果发生数字溢出
-
withYear
返回此YearMonth的副本,并更改年份。此实例是不可变的,不受此方法调用的影响。
- 参数:
year- 在返回的年月中设置的年份,从 MIN_YEAR 到 MAX_YEAR- 返回:
-
a
YearMonth基于请求年份的年月,不为空 - 抛出:
DateTimeException- 如果年份值无效
-
withMonth
返回此YearMonth的副本,其中更改了月份。此实例是不可变的,不受此方法调用的影响。
- 参数:
month- 在返回的年月中设置的月份,从 1(一月)到 12(十二月)- 返回:
-
a
YearMonth基于今年月份和请求的月份,不为空 - 抛出:
DateTimeException- 如果月份值无效
-
plus
返回添加了指定数量的今年-月份的副本。这将返回一个
YearMonth,基于这个,添加了指定的数量。数量通常是Period但可以是实现TemporalAmount接口的任何其他类型。通过调用
TemporalAmount.addTo(Temporal)将计算委托给金额对象。金额实现可以自由地以任何它希望的方式实现加法,但是它通常会回调plus(long, TemporalUnit)。查阅amount实现的文档,判断是否可以添加成功。此实例是不可变的,不受此方法调用的影响。
- 指定者:
plus在接口Temporal中- 参数:
amountToAdd- 添加的数量,不为空- 返回:
-
a
YearMonth基于今年-月份并添加,不为空 - 抛出:
DateTimeException- 如果无法添加ArithmeticException- 如果发生数字溢出
-
plus
返回添加了指定数量的今年-月份的副本。这将返回一个
YearMonth,基于这个,加上以单位表示的数量。如果由于不支持该单位或其他原因而无法添加金额,则会抛出异常。如果该字段是
ChronoUnit,则在此处实现加法。支持的字段行为如下:MONTHS- 返回添加了指定月数的YearMonth。这相当于plusMonths(long)。YEARS- 返回添加了指定年数的YearMonth。这相当于plusYears(long)。DECADES- 返回一个YearMonth添加了指定的十进制数。这相当于用金额乘以 10 调用plusYears(long)。CENTURIES- 返回添加了指定世纪数的YearMonth。这相当于用金额乘以 100 调用plusYears(long)。MILLENNIA- 返回一个YearMonth添加了指定的千年数。这相当于用金额乘以 1,000 调用plusYears(long)。ERAS- 返回添加了指定纪元数的YearMonth。仅支持两个纪元,因此数量必须为一、零或负一。如果金额不为零,则年份会发生变化,因此时代年份不变。
所有其他
ChronoUnit实例将抛出UnsupportedTemporalTypeException。如果该字段不是
ChronoUnit,则通过调用TemporalUnit.addTo(Temporal, long)传递this作为参数来获得此方法的结果。在这种情况下,该单元确定是否以及如何执行加法。此实例是不可变的,不受此方法调用的影响。
- 指定者:
plus在接口Temporal中- 参数:
amountToAdd- 添加到结果的单位数量,可能为负数unit- 添加量的单位,不为空- 返回:
-
a
YearMonth基于今年-月份加上指定数量,不为空 - 抛出:
DateTimeException- 如果无法添加UnsupportedTemporalTypeException- 如果不支持该单元ArithmeticException- 如果发生数字溢出
-
plusYears
返回此YearMonth的副本,并添加了指定的年数。此实例是不可变的,不受此方法调用的影响。
- 参数:
yearsToAdd- 添加的年份,可能为负- 返回:
YearMonth基于今年月份加上年份,不为空- 抛出:
DateTimeException- 如果结果超出支持的范围
-
plusMonths
返回此YearMonth的副本,并添加了指定的月数。此实例是不可变的,不受此方法调用的影响。
- 参数:
monthsToAdd- 添加的月份,可能为负数- 返回:
YearMonth基于今年月份加上月份,不为空- 抛出:
DateTimeException- 如果结果超出支持的范围
-
minus
返回减去指定数量的今年-月份的副本。这将返回一个
YearMonth,基于这个,减去指定的数量。数量通常是Period但可以是实现TemporalAmount接口的任何其他类型。通过调用
TemporalAmount.subtractFrom(Temporal)将计算委托给金额对象。金额实现可以自由地以任何它希望的方式实现减法,但是它通常会回调minus(long, TemporalUnit)。查阅 amount 实现的文档以确定是否可以成功减去。此实例是不可变的,不受此方法调用的影响。
- 指定者:
minus在接口Temporal中- 参数:
amountToSubtract- 要减去的金额,不为空- 返回:
-
a
YearMonth基于今年-月份减去,不为空 - 抛出:
DateTimeException- 如果无法进行减法ArithmeticException- 如果发生数字溢出
-
minus
返回减去指定数量的今年-月份的副本。这将返回一个
YearMonth,基于这个,减去单位数量。如果无法减去金额,因为不支持该单位或出于其他原因,则会抛出异常。此方法等同于
plus(long, TemporalUnit)取反金额。有关加法和减法如何工作的完整描述,请参阅该方法。此实例是不可变的,不受此方法调用的影响。
- 指定者:
minus在接口Temporal中- 参数:
amountToSubtract- 要从结果中减去的单位数量,可能为负数unit- 要减去的金额的单位,不为空- 返回:
-
a
YearMonth基于今年-月份减去指定金额,不为空 - 抛出:
DateTimeException- 如果无法进行减法UnsupportedTemporalTypeException- 如果不支持该单元ArithmeticException- 如果发生数字溢出
-
minusYears
返回此YearMonth的副本,并减去指定的年数。此实例是不可变的,不受此方法调用的影响。
- 参数:
yearsToSubtract- 要减去的年份,可能为负数- 返回:
YearMonth基于今年减去年份的月份,不为空- 抛出:
DateTimeException- 如果结果超出支持的范围
-
minusMonths
返回此YearMonth的副本,并减去指定的月数。此实例是不可变的,不受此方法调用的影响。
- 参数:
monthsToSubtract- 要减去的月份,可能为负数- 返回:
YearMonth基于今年减去月份的月份,不为空- 抛出:
DateTimeException- 如果结果超出支持的范围
-
query
使用指定查询查询今年-月份。这使用指定的查询策略对象查询今年-月份。
TemporalQuery对象定义了用于获取结果的逻辑。阅读查询文档以了解此方法的结果。此方法的结果是通过对指定查询调用
TemporalQuery.queryFrom(TemporalAccessor)方法并将this作为参数传递来获得的。- 指定者:
query在接口TemporalAccessor中- 类型参数:
R- 结果的类型- 参数:
query- 要调用的查询,不为空- 返回:
- 查询结果,可能返回null(由查询定义)
- 抛出:
DateTimeException- 如果无法查询(由查询定义)ArithmeticException- 如果发生数字溢出(由查询定义)
-
adjustInto
将指定的时间对象调整为具有今年-月份。这将返回一个与输入具有相同可观察类型的时间对象,其中年和月更改为与此相同。
调整相当于使用
Temporal.with(TemporalField, long)传递ChronoField.PROLEPTIC_MONTH作为字段。如果指定的时间对象不使用 ISO 日历系统,则抛出DateTimeException。在大多数情况下,使用
Temporal.with(TemporalAdjuster)反转调用模式会更清楚:// these two lines are equivalent, but the second approach is recommended temporal = thisYearMonth.adjustInto(temporal); temporal = temporal.with(thisYearMonth);
此实例是不可变的,不受此方法调用的影响。
- 指定者:
adjustInto在接口TemporalAdjuster中- 参数:
temporal- 要调整的目标对象,不为空- 返回:
- 调整后的对象,不为空
- 抛出:
DateTimeException- 如果无法进行调整ArithmeticException- 如果发生数字溢出
-
until
根据指定的单位计算到另一个年月的时间量。这根据单个
TemporalUnit计算两个YearMonth对象之间的时间量。起点和终点是this和指定的年月。如果结束早于开始,结果将为负。传递给此方法的Temporal使用from(TemporalAccessor)转换为YearMonth。例如,可以使用startYearMonth.until(endYearMonth, YEARS)计算两个年月之间的年数。计算返回一个整数,表示两个年月之间的完整单位数。例如,2012-06 年和 2032-05 年之间的几十年数量将只有一个十年,因为它距离二十年还差一个月。
有两种等效的方法可以使用此方法。第一个是调用这个方法。第二种是使用
TemporalUnit.between(Temporal, Temporal):// these two lines are equivalent amount = start.until(end, MONTHS); amount = MONTHS.between(start, end);
应该根据哪个使代码更具可读性来做出选择。ChronoUnit的计算在此方法中实现。支持单位MONTHS、YEARS、DECADES、CENTURIES、MILLENNIA和ERAS。其他ChronoUnit值将引发异常。如果单位不是
ChronoUnit,则通过调用TemporalUnit.between(Temporal, Temporal)将this作为第一个参数并将转换后的输入时间作为第二个参数来获得此方法的结果。此实例是不可变的,不受此方法调用的影响。
- 指定者:
until在接口Temporal中- 参数:
endExclusive- 结束日期,独占,转换为YearMonth,不为空unit- 衡量数量的单位,不为空- 返回:
- 今年月和结束年月之间的时间量
- 抛出:
DateTimeException- 如果无法计算金额,或者结束时间无法转换为YearMonthUnsupportedTemporalTypeException- 如果不支持该单元ArithmeticException- 如果发生数字溢出
-
format
使用指定的格式化程序格式化今年-月份。这个年月将被传递给格式化程序以生成一个字符串。
- 参数:
formatter- 要使用的格式化程序,不为空- 返回:
- 格式化的年月字符串,不为空
- 抛出:
DateTimeException- 如果在打印过程中发生错误
-
atDay
将今年的月份与月份的某一天相结合以创建LocalDate。这将返回一个
LocalDate从这个年月和指定的月中形成。day-of-month 值必须对年-月有效。
此方法可用作链的一部分来生成日期:
LocalDate date = year.atMonth(month).atDay(day);
- 参数:
dayOfMonth- 使用的日期,从 1 到 31- 返回:
- 由本年月和指定日期组成的日期,不为空
- 抛出:
DateTimeException- 如果日期对于年月无效- 参见:
-
atEndOfMonth
在月底返回LocalDate。这会返回一个基于这一年月的
LocalDate。考虑到闰年,日期设置为该月的最后一个有效日期。此方法可用作链的一部分来生成日期:
LocalDate date = year.atMonth(month).atEndOfMonth();
- 返回:
- 本年月的最后一个有效日期,不为空
-
compareTo
将今年月份与另一年月份进行比较。比较首先基于年份的值,然后基于月份的值。正如
Comparable所定义的那样,它“与等于一致”。- 指定者:
compareTo在接口Comparable<YearMonth>中- 参数:
other- 要比较的另一个年月,不为空- 返回:
- 比较值,小于则为负,大于则为正
-
isAfter
检查此年月是否在指定的年月之后。- 参数:
other- 要比较的另一个年月,不为空- 返回:
- 如果这是在指定的年月之后,则为真
-
isBefore
检查此年月是否在指定的年月之前。- 参数:
other- 要比较的另一个年月,不为空- 返回:
- 如果这一点在指定的年月之前,则为真
-
equals
检查这个年月是否等于另一个年月。比较是基于年月的时间线位置。
-
hashCode
public int hashCode()今年月份的哈希码。 -
toString
将今年-月份输出为String,例如2007-12。输出将采用
uuuu-MM格式:
-