public final class YearMonth extends Object implements Temporal, TemporalAdjuster, Comparable<YearMonth>, Serializable
2007-12など)。
YearMonthは、年と月の組合せを表す不変の日付/時間オブジェクトです。年と月から生成できるすべてのフィールド(四半期など)を取得できます。
このクラスでは、日、時間、またはタイムゾーンを格納したり表現したりしません。たとえば、「October 2007」という値をYearMonthに格納できます。
ISO-8601暦体系は、世界中の大部分で現在使われている近代の常用暦体系です。これは、現在のうるう年のルールがすべての時間に適用される、先発グレゴリオ暦体系と同等です。今日作成されているほとんどのアプリケーションには、ISO-8601のルールが完全に適しています。ただし、歴史的な日付を使用し、それらが正確であることを必要とするアプリケーションには、ISO-8601の方法が適さないことがわかります。
これは値ベースのクラスです。YearMonthのインスタンスに対して、アイデンティティの影響を受けやすい操作(参照型等価演算子(==)、アイデンティティ・ハッシュ・コード、同期化など)を使用すると、予測できない結果が生じることがあるため、使わないようにしてください。比較する場合は、equalsメソッドを使用することをお薦めします。
| 修飾子と型 | メソッドと説明 |
|---|---|
Temporal |
adjustInto(Temporal temporal)
指定された時間的オブジェクトをこの年/月になるように調整します。
|
LocalDate |
atDay(int dayOfMonth)
この年-月を「月の日」と組み合せて
LocalDateを作成します。 |
LocalDate |
atEndOfMonth()
その月の終わりの
LocalDateを返します。 |
int |
compareTo(YearMonth other)
この年-月をもう一方の年-月と比較します。
|
boolean |
equals(Object obj)
この年-月がもう一方の年-月と等しいかどうかを確認します。
|
String |
format(DateTimeFormatter formatter)
指定されたフォーマッタを使用してこの年-月を書式設定します。
|
static YearMonth |
from(TemporalAccessor temporal)
時間的オブジェクトから
YearMonthのインスタンスを取得します。 |
int |
get(TemporalField field)
この年/月から指定されたフィールドの値を
intとして取得します。 |
long |
getLong(TemporalField field)
この年/月から指定されたフィールドの値を
longとして取得します。 |
Month |
getMonth()
列挙型
Monthを使用して、月フィールドを取得します。 |
int |
getMonthValue()
月フィールドを取得します(1-12)。
|
int |
getYear()
年フィールドを取得します。
|
int |
hashCode()
この年-月のハッシュ・コードです。
|
boolean |
isAfter(YearMonth other)
この年-月が指定された年-月より後にあるか。
|
boolean |
isBefore(YearMonth other)
この年-月が指定された年-月より前にあるか。
|
boolean |
isLeapYear()
ISO先発グレゴリオ暦暦体系のルールに従って、年がうるう年であるかどうかをチェックします。
|
boolean |
isSupported(TemporalField field)
指定されたフィールドがサポートされているかどうかをチェックします。
|
boolean |
isSupported(TemporalUnit unit)
指定された単位がサポートされているかどうかをチェックします。
|
boolean |
isValidDay(int dayOfMonth)
「月の日」がこの年-月に対して有効であるかどうかを確認します。
|
int |
lengthOfMonth()
年を考慮に入れて、月の長さを返します。
|
int |
lengthOfYear()
年の長さを返します。
|
YearMonth |
minus(long amountToSubtract, TemporalUnit unit)
指定された量を減算して、この年/月のコピーを返します。
|
YearMonth |
minus(TemporalAmount amountToSubtract)
指定された量を減算して、この年/月のコピーを返します。
|
YearMonth |
minusMonths(long monthsToSubtract)
指定された期間(月数)を減算して、この年-月のコピーを返します。
|
YearMonth |
minusYears(long yearsToSubtract)
指定された期間(年数)を減算して、この年-月のコピーを返します。
|
static YearMonth |
now()
デフォルトのタイムゾーンのシステム・クロックから現在の年-月を取得します。
|
static YearMonth |
now(Clock clock)
指定されたクロックから現在の年-月を取得します。
|
static YearMonth |
now(ZoneId zone)
指定されたタイムゾーンのシステム・クロックから現在の年-月を取得します。
|
static YearMonth |
of(int year, int month)
年および月から
YearMonthのインスタンスを取得します。 |
static YearMonth |
of(int year, Month month)
年および月から
YearMonthのインスタンスを取得します。 |
static YearMonth |
parse(CharSequence text)
2007-12などのテキスト文字列からYearMonthのインスタンスを取得します。 |
static YearMonth |
parse(CharSequence text, DateTimeFormatter formatter)
特定のフォーマッタを使用して、テキスト文字列から
YearMonthのインスタンスを取得します。 |
YearMonth |
plus(long amountToAdd, TemporalUnit unit)
指定された量を加算して、この年/月のコピーを返します。
|
YearMonth |
plus(TemporalAmount amountToAdd)
指定された量を加算して、この年/月のコピーを返します。
|
YearMonth |
plusMonths(long monthsToAdd)
指定された期間(月数)を加算して、この年-月のコピーを返します。
|
YearMonth |
plusYears(long yearsToAdd)
指定された期間(年数)を加算して、この年-月のコピーを返します。
|
<R> R |
query(TemporalQuery<R> query)
指定された問合せを使用してこの年/月を問い合せます。
|
ValueRange |
range(TemporalField field)
指定されたフィールドの有効な値の範囲を取得します。
|
String |
toString()
この年-月を
Stringとして出力します(2007-12など)。 |
long |
until(Temporal endExclusive, TemporalUnit unit)
別の年/月までの時間量を指定された単位で計算します。
|
YearMonth |
with(TemporalAdjuster adjuster)
この年/月の調整済のコピーを返します。
|
YearMonth |
with(TemporalField field, long newValue)
指定されたフィールドを新しい値に設定して、この年/月のコピーを返します。
|
YearMonth |
withMonth(int month)
月を変更して、この
YearMonthのコピーを返します。 |
YearMonth |
withYear(int year)
年を変更して、この
YearMonthのコピーを返します。 |
public static YearMonth now()
これは、デフォルトのタイムゾーンのシステム・クロックを問い合わせて、現在の年-月を取得します。ゾーンおよびオフセットは、そのクロックのタイムゾーンに基づいて設定されます。
このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。
public static YearMonth now(ZoneId zone)
これは、システム・クロックを問い合わせて現在の年-月を取得します。タイムゾーンを指定すると、デフォルトのタイムゾーンへの依存を避けられます。
このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。
zone - 使用するゾーンID、null以外public static YearMonth now(Clock clock)
これは、指定されたクロックを問い合わせて現在の年-月を取得します。このメソッドを使用すると、テストに代替のクロックを使用できます。代替のクロックはdependency injectionを使用して導入できます。
clock - 使用するクロック、null以外public static YearMonth of(int year, Month month)
YearMonthのインスタンスを取得します。year - 表す年(MIN_YEARからMAX_YEARまで)month - 表される月。null以外DateTimeException - 年の値が無効である場合public static YearMonth of(int year, int month)
YearMonthのインスタンスを取得します。year - 表す年(MIN_YEARからMAX_YEARまで)month - 表される月。1(1月)-12(12月)DateTimeException - どちらかのフィールド値が無効である場合public static YearMonth from(TemporalAccessor temporal)
YearMonthのインスタンスを取得します。
これは、指定された時間的オブジェクトに基づいて年-月を取得します。TemporalAccessorは任意の日付と時間のセットに関する情報を表し、それがこのファクトリでYearMonthのインスタンスに変換されます。
この変換では、YEARおよびMONTH_OF_YEARフィールドを抽出します。この抽出が許可されるのは、時間的オブジェクトにISOの暦が含まれているか、そのオブジェクトをLocalDateに変換できる場合にかぎられます。
このメソッドは、関数型インタフェースTemporalQueryのシグネチャに一致するため、メソッド参照YearMonth::fromを介して問合せで使用できます。
temporal - 変換する一時オブジェクト、null以外DateTimeException - YearMonthに変換できない場合public static YearMonth parse(CharSequence text)
2007-12などのテキスト文字列からYearMonthのインスタンスを取得します。
この文字列は有効な年-月を表している必要があります。フォーマットはuuuu-MMである必要があります。0000-9999の範囲外にある年の前には、プラスまたはマイナス記号を付ける必要があります。
text - 「2007-12」などの解析対象のテキスト。null以外DateTimeParseException - テキストが解析できない場合public static YearMonth parse(CharSequence text, DateTimeFormatter formatter)
YearMonthのインスタンスを取得します。
そのテキストがフォーマッタを使って解析され、年-月が返されます。
text - 解析するテキスト。null以外formatter - 使用するフォーマッタ、null以外DateTimeParseException - テキストが解析できない場合public boolean isSupported(TemporalField field)
これは、指定されたフィールドをこの年-月に問い合わせることができるかどうかを確認します。falseの場合、range、get、およびwith(TemporalField, long)メソッドの呼び出しは、例外をスローします。
フィールドがChronoFieldの場合、ここに問合せを実装します。サポートされるフィールドは次のとおりです。
MONTH_OF_YEAR
PROLEPTIC_MONTH
YEAR_OF_ERA
YEAR
ERA
ChronoFieldインスタンスはfalseを返します。
フィールドがChronoFieldでない場合、このメソッドの結果は、thisを引数として渡してTemporalField.isSupportedBy(TemporalAccessor)を呼び出すことによって取得します。フィールドがサポートされているかどうかはフィールドによって決定します。
TemporalAccessorのisSupportedfield - チェックするフィールド、nullはfalseを返すpublic boolean isSupported(TemporalUnit unit)
これは、指定された単位をこの日付/時間に対して加算または減算できるかどうかをチェックします。falseの場合、plus(long, TemporalUnit)およびminusメソッドの呼び出しは、例外をスローします。
単位がChronoUnitの場合、問合せはここで実装されます。サポートされる単位は次のとおりです。
MONTHS
YEARS
DECADES
CENTURIES
MILLENNIA
ERAS
ChronoUnitインスタンスはfalseを返します。
単位がChronoUnitでない場合、このメソッドの結果は、thisを引数として渡してTemporalUnit.isSupportedBy(Temporal)を呼び出すことによって取得します。単位がサポートされているかどうかは単位によって決定します。
TemporalのisSupportedunit - チェックする単位、nullはfalseを返すpublic ValueRange range(TemporalField field)
範囲オブジェクトはフィールドの有効な最小値と最大値を表します。この年-月は、返される範囲の精度を高めるために使用されます。範囲を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドがChronoFieldの場合、ここに問合せを実装します。サポートされるフィールドは適切な範囲のインスタンスを返します。他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。
フィールドがChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.rangeRefinedBy(TemporalAccessor)を呼び出すことにより取得されます。範囲を取得できるかどうかはフィールドによって決まります。
TemporalAccessorのrangefield - 範囲を問い合わせるフィールド、null以外DateTimeException - フィールドの範囲を取得できない場合UnsupportedTemporalTypeException - フィールドがサポートされていない場合public int get(TemporalField field)
intとして取得します。
これは、指定されたフィールドの値をこの年-月に問い合わせます。返される値は常にフィールドの値の有効な範囲内になります。値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドがChronoFieldの場合、ここに問合せを実装します。サポートされているフィールドはこの年-月に基づいて有効な値を返します。ただし、PROLEPTIC_MONTHは長すぎてintに収まらないので、DateTimeExceptionがスローされます。他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。
フィールドがChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.getFrom(TemporalAccessor)を呼び出すことにより取得されます。値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。
TemporalAccessorのgetfield - 取得するフィールド、null以外DateTimeException - フィールドの値を取得できない場合、または値がフィールドの有効な値の範囲外の場合UnsupportedTemporalTypeException - フィールドがサポートされていない場合、または値の範囲がintを超えている場合ArithmeticException - 数値のオーバーフローが発生した場合public long getLong(TemporalField field)
longとして取得します。
これは、指定されたフィールドの値をこの年-月に問い合わせます。値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドがChronoFieldの場合、ここに問合せを実装します。サポートされているフィールドは、この年-月に基づいて有効な値を返します。他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。
フィールドがChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.getFrom(TemporalAccessor)を呼び出すことにより取得されます。値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。
TemporalAccessorのgetLongfield - 取得するフィールド、null以外DateTimeException - フィールドの値を取得できない場合UnsupportedTemporalTypeException - フィールドがサポートされていない場合ArithmeticException - 数値のオーバーフローが発生した場合public int getYear()
このメソッドは、年を表すプリミティブなint値を返します。
このメソッドで返される年は、get(YEAR)のように予期的なものです。
public int getMonthValue()
このメソッドは、月を1-12のintとして返します。getMonth()を呼び出すことで列挙型Monthが使用される場合は、アプリケーション・コードがより明確になることが多くなります。
getMonth()public Month getMonth()
Monthを使用して、月フィールドを取得します。
このメソッドは、月を表す列挙型Monthを返します。これによって、int値が意味する内容に関する混乱を回避できます。プリミティブなint値にアクセスする必要がある場合、この列挙型はint値を提供します。
getMonthValue()public boolean isLeapYear()
このメソッドは、時系列全体にわたって、うるう年の現在のルールを適用します。一般に、年は4で割り切れる場合にうるう年です。ただし、400で割り切れる年を除き、100で割り切れる年はうるう年ではありません。
たとえば、1904年は4で割り切れるうるう年です。1900年は100で割り切れるため、うるう年ではありませんでしたが、2000年は400で割り切れるため、うるう年でした。
計算は先発グレゴリオ暦で、遠い将来および遠い過去にも同じルールが適用されます。これは歴史的には正確ではありませんが、ISO-8601規格には正確です。
public boolean isValidDay(int dayOfMonth)
このメソッドは、この年と月、および入力された日から有効な日付が形成されるかどうかを確認します。
dayOfMonth - 検証対象の「月の日」(1-31)。無効な値はfalseを返すpublic int lengthOfMonth()
これは月の長さを日数で返します。たとえば、1月の日付は31を返します。
public int lengthOfYear()
これは、その年の長さを日数(365または366)で返します。
public YearMonth with(TemporalAdjuster adjuster)
これは、年-月を調整して、この年-月に基づくYearMonthを返します。調整は、指定されたアジャスタ戦略オブジェクトを使用して行われます。どのような調整が行われるかを理解するには、アジャスタのドキュメントを参照してください。
単純なアジャスタは、年フィールドなどの1つのフィールドだけを設定するなどです。より複雑なアジャスタは、年-月をハレー彗星が次回地球を通過する月に設定できます。
このメソッドの結果は、指定されたアジャスタでthisを引数として渡してTemporalAdjuster.adjustInto(Temporal)メソッドを呼び出すことによって取得されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
Temporalのwithadjuster - 使用するアジャスタ、null以外これに基づくYearMonth。null以外DateTimeException - 調整ができない場合ArithmeticException - 数値のオーバーフローが発生した場合public YearMonth with(TemporalField field, long newValue)
これは、指定されたフィールドの値を変更して、この年-月に基づくYearMonthを返します。これを使用すると、年または月などのサポートされているフィールドを変更できます。値を設定できない場合は、フィールドがサポートされていないか他の理由のために、例外がスローされます。
フィールドがChronoFieldの場合は、調整はここで実装されます。サポートされるフィールドは次のように動作します。
MONTH_OF_YEAR - 指定された月を含むYearMonthを返します。その年は変更されません。
PROLEPTIC_MONTH - 指定された先発年を含むYearMonthを返します。これは、このオブジェクトの年と月を完全に置き換えます。
YEAR_OF_ERA - 指定された紀元年を含むYearMonthを返します。その月および紀元は変更されません。
YEAR - 指定された年を含むYearMonthを返します。その月は変更されません。
ERA - 指定された紀元を含むYearMonthを返します。その月および紀元年は変更されません。
いずれの場合も、新しい値がフィールドの値の有効範囲外にあるとDateTimeExceptionがスローされます。
他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。
フィールドがChronoFieldではない場合、このメソッドの結果は、thisを引数として渡してTemporalField.adjustInto(Temporal, long)を呼び出すことによって取得されます。この場合、インスタントを調整するかどうかおよびどのように調整するかはフィールドによって決まります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
Temporalのwithfield - 結果に設定するフィールド、null以外newValue - 結果のフィールドの新しい値これに基づくYearMonth。null以外DateTimeException - フィールドを設定できない場合UnsupportedTemporalTypeException - フィールドがサポートされていない場合ArithmeticException - 数値のオーバーフローが発生した場合public YearMonth withYear(int year)
YearMonthのコピーを返します。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
year - 返される年-月に設定する年(MIN_YEARからMAX_YEARまで)YearMonth。null以外DateTimeException - 年の値が無効である場合public YearMonth withMonth(int month)
YearMonthのコピーを返します。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
month - 返される年-月に設定する月。1(1月)-12(12月)YearMonth。null以外DateTimeException - 月の値が無効である場合public YearMonth plus(TemporalAmount amountToAdd)
これは、指定された量を加算して、この年-月に基づくYearMonthを返します。この量は通常Periodですが、TemporalAmountインタフェースを実装する他のどの型であってもかまいません。
計算は、TemporalAmount.addTo(Temporal)を呼び出すことによって量オブジェクトに委譲されます。量実装は加算を任意の方法で自由に実装できますが、通常はplus(long, TemporalUnit)にコールバックします。正常に加算できるかどうかを判断するには、量実装のドキュメントを参照してください。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
TemporalのplusamountToAdd - 加算する量、nullでないYearMonth。null以外DateTimeException - 加算できない場合ArithmeticException - 数値のオーバーフローが発生した場合public YearMonth plus(long amountToAdd, TemporalUnit unit)
これは、その単位での量を加算して、この年-月に基づくYearMonthを返します。量を加算できない場合、単位がサポートされていないか他の理由のために、例外がスローされます。
フィールドがChronoUnitの場合は、加算はここで実装されます。サポートされるフィールドは次のように動作します。
MONTHS - 指定された月数を加算してYearMonthを返します。これはplusMonths(long)と同等です。
YEARS - 指定された年数を加算してYearMonthを返します。これはplusYears(long)と同等です。
DECADES - 指定された数の10年を加算してYearMonthを返します。これは、量を10倍にしてplusYears(long)を呼び出すことと同等です。
CENTURIES - 指定された数の100年を加算してYearMonthを返します。これは、量を100倍にしてplusYears(long)を呼び出すことと同等です。
MILLENNIA - 指定された数の1000年を加算してYearMonthを返します。これは、量を1,000倍にしてplusYears(long)を呼び出すことと同等です。
ERAS - 指定された紀元数を加算してYearMonthを返します。サポートされている紀元は2つのみなので、この量は1、0、または-1にする必要があります。量が0以外である場合は、紀元年が変わらないように、その年が変更されます。
他のすべてのChronoUnitインスタンスはUnsupportedTemporalTypeExceptionをスローします。
フィールドがChronoUnitでない場合、このメソッドの結果は、thisを引数として渡してTemporalUnit.addTo(Temporal, long)を呼び出すことによって取得されます。この場合、加算を実行するかどうかおよびどのように実行するかは単位によって決まります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
TemporalのplusamountToAdd - 結果に加算する単位の量、負も可unit - 加算する量の単位、nullでないYearMonth。null以外DateTimeException - 加算できない場合UnsupportedTemporalTypeException - 単位がサポートされていない場合ArithmeticException - 数値のオーバーフローが発生した場合public YearMonth plusYears(long yearsToAdd)
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
yearsToAdd - 加算する年数。負の値の場合もあるYearMonth。null以外DateTimeException - 結果がサポートされている範囲を超える場合public YearMonth plusMonths(long monthsToAdd)
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
monthsToAdd - 加算する月数。負の値の場合もあるYearMonth。null以外DateTimeException - 結果がサポートされている範囲を超える場合public YearMonth minus(TemporalAmount amountToSubtract)
これは、指定された量を減算して、この年-月に基づくYearMonthを返します。この量は通常Periodですが、TemporalAmountインタフェースを実装する他のどの型であってもかまいません。
計算は、TemporalAmount.subtractFrom(Temporal)を呼び出すことによって量オブジェクトに委譲されます。量実装は減算を任意の方法で自由に実装できますが、通常はminus(long, TemporalUnit)にコールバックします。正常に減算できるかどうかを判断するには、量実装のドキュメントを参照してしてください。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
TemporalのminusamountToSubtract - 減算する量、nullでないYearMonth。null以外DateTimeException - 減算ができない場合ArithmeticException - 数値のオーバーフローが発生した場合public YearMonth minus(long amountToSubtract, TemporalUnit unit)
これは、その単位での量を減算して、この年-月に基づくYearMonthを返します。量を減算できない場合、単位がサポートされていないか他の理由のために、例外がスローされます。
このメソッドは、量を符号反転したplus(long, TemporalUnit)と同等です。加算および減算がどのように行われるかについての詳しい説明は、そのメソッドを参照してください。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
TemporalのminusamountToSubtract - 結果から減算する単位の量、負も可unit - 減算する量の単位、nullでないYearMonth。null以外DateTimeException - 減算ができない場合UnsupportedTemporalTypeException - 単位がサポートされていない場合ArithmeticException - 数値のオーバーフローが発生した場合public YearMonth minusYears(long yearsToSubtract)
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
yearsToSubtract - 減算する年数。負の値の場合もあるYearMonth。null以外DateTimeException - 結果がサポートされている範囲を超える場合public YearMonth minusMonths(long monthsToSubtract)
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
monthsToSubtract - 減算する月数。負の値の場合もあるYearMonth。null以外DateTimeException - 結果がサポートされている範囲を超える場合public <R> R query(TemporalQuery<R> query)
これは、指定された問合せ方針オブジェクトを使用してこの年-月を問い合わせます。TemporalQueryオブジェクトは結果を取得するために使用するロジックを定義します。このメソッドの結果を理解するには、問合せのドキュメントをお読みください。
このメソッドの結果は、thisを引数として渡して、指定した問合せでTemporalQuery.queryFrom(TemporalAccessor)メソッドを呼び出すことによって取得します。
TemporalAccessorのqueryR - 結果の型query - 呼び出す問合せ、null以外DateTimeException - 問い合わせできない場合(問合せによって定義される)ArithmeticException - 数値のオーバーフローが発生した場合(問合せによって定義される)public Temporal adjustInto(Temporal temporal)
これは、年と月をこれと同じになるように変更して、入力と同じ識別可能な型の時間的オブジェクトを返します。
この調整は、ChronoField.PROLEPTIC_MONTHをフィールドとして渡してTemporal.with(TemporalField, long)を使用することと同等です。指定された時間的オブジェクトがISOの暦体系を使用しない場合は、DateTimeExceptionがスローされます。
ほとんどのケースで、Temporal.with(TemporalAdjuster)を使用して、呼び出しパターンを逆にすると明確になります。
// these two lines are equivalent, but the second approach is recommended temporal = thisYearMonth.adjustInto(temporal); temporal = temporal.with(thisYearMonth);
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
TemporalAdjusterのadjustIntotemporal - 調整するターゲット・オブジェクト、null以外DateTimeException - 調整を実行できない場合ArithmeticException - 数値のオーバーフローが発生した場合public long until(Temporal endExclusive, TemporalUnit unit)
これは、1つのTemporalUnitを単位として、2つのYearMonthオブジェクト間の時間量を計算します。始点と終点は、これと指定された年-月です。終了が開始より前である場合、結果は負になります。このメソッドに渡されたTemporalは、from(TemporalAccessor)を使用してYearMonthに変換されます。たとえば、2つの年-月の間の年単位の期間は、startYearMonth.until(endYearMonth, YEARS)を使用して計算できます。
この計算では、2つの年-月の間の完全な単位の数を表す整数を返します。たとえば、2012-06から2032-05までの10年単位の期間は、20年には1か月足りないため、10年のみとなります。
このメソッドを使用する等価な方法が2つあります。1つ目はこのメソッドを呼び出すことです。2つ目は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でない場合、このメソッドの結果は、thisを1つ目の引数として、変換される入力temporal (一時)を2つ目の引数として渡してTemporalUnit.between(Temporal, Temporal)を呼び出すことによって取得します。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
TemporalのuntilendExclusive - YearMonthに変換される終了日付(これを含まない)。null以外unit - 量を測定する単位、null以外DateTimeException - その量を計算できないか、終了時間をYearMonthに変換できない場合UnsupportedTemporalTypeException - 単位がサポートされていない場合ArithmeticException - 数値のオーバーフローが発生した場合public String format(DateTimeFormatter formatter)
この年-月がフォーマッタに渡されて、文字列が生成されます。
formatter - 使用するフォーマッタ、null以外DateTimeException - 出力時にエラーが発生した場合public LocalDate atDay(int dayOfMonth)
LocalDateを作成します。
これは、この年-月および指定された「月の日」から形成されたLocalDateを返します。
「月の日」の値はその年-月に対して有効である必要があります。
このメソッドは、日付を生成するためのチェーンの一部として使用できます。
LocalDate date = year.atMonth(month).atDay(day);
dayOfMonth - 使用する「月の日」(1-31)DateTimeException - その日がその年-月に対して無効である場合isValidDay(int)public LocalDate atEndOfMonth()
LocalDateを返します。
これは、この年-月に基づいてLocalDateを返します。「月の日」は、うるう年を考慮してその月の最後の有効な日に設定されます。
このメソッドは、日付を生成するためのチェーンの一部として使用できます。
LocalDate date = year.atMonth(month).atEndOfMonth();
public int compareTo(YearMonth other)
この比較は、まず年の値に基づいて行われ、次に月の値に基づいて行われます。Comparableに定義されているとおりに、「equalsと一致」しています。
compareTo、インタフェース: Comparable<YearMonth>other - 比較対象のもう一方の年-月。null以外public boolean isAfter(YearMonth other)
other - 比較対象のもう一方の年-月。null以外public boolean isBefore(YearMonth other)
other - 比較対象のもう一方の年-月。null以外public boolean equals(Object obj)
この比較は、それらの年-月の時系列上の位置に基づいています。
equals、クラス: Objectobj - チェックするオブジェクト、nullはfalseを返すObject.hashCode()、HashMappublic int hashCode()
hashCode、クラス: ObjectObject.equals(java.lang.Object), System.identityHashCode(java.lang.Object) バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.