public final class JapaneseDate extends Object implements ChronoLocalDate, Serializable
この日付は和暦を使用して、運用されます。 この暦体系は主に日本で使用されています。
和暦体系は、紀元ベースの年の番号付けを除いて、ISO暦体系と同じです。 先発暦の年は、ISO先発暦の年と等しく定義されます。
日本では明治6年からグレゴリオ暦を導入しています。 明治以降の紀元のみサポートされ、明治6年1月1日より前の日付はサポートされません。
たとえば、和暦の年「Heisei 24」はISO暦の年「2012」に対応します。 japaneseDate.get(YEAR_OF_ERA)を呼び出すと、24が返されます。 japaneseDate.get(YEAR)を呼び出すと、2012が返されます。 japaneseDate.get(ERA)を呼び出すと、2が返され、JapaneseChronology.ERA_HEISEIに対応します。
これは値ベースのクラスです。JapaneseDateのインスタンスに対する、IDに依存する操作(参照型等価(==)、IDハッシュ・コード、または同期を含む)の使用は、予測できない結果になる可能性があるため、避けてください。 比較する場合は、equalsメソッドを使用することをお薦めします。
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
ChronoLocalDateTime<JapaneseDate> |
atTime(LocalTime localTime) |
この日付を時間と組み合わせて、
ChronoLocalDateTimeを作成します。 |
boolean |
equals(Object obj) |
暦を含めて、この日付を別の日付と比較します。
|
static JapaneseDate |
from(TemporalAccessor temporal) |
時間的オブジェクトから
JapaneseDateを取得します。 |
JapaneseChronology |
getChronology() |
和暦体系であるこの日付の暦を取得します。
|
JapaneseEra |
getEra() |
この日付で使用可能な紀元を取得します。
|
long |
getLong(TemporalField field) |
指定されたフィールドの値を
longとして取得します。 |
int |
hashCode() |
この日付のハッシュ・コード。
|
boolean |
isSupported(TemporalField field) |
指定されたフィールドがサポートされているかどうかをチェックします。
|
int |
lengthOfMonth() |
この日付によって表される月の長さを返します。
|
int |
lengthOfYear() |
暦体系によって定義されているとおりに、この日付によって表されている年の長さを返します。
|
JapaneseDate |
minus(long amountToAdd, TemporalUnit unit) |
指定された期間を減算して、このオブジェクトと同じ型のオブジェクトを返します。
|
JapaneseDate |
minus(TemporalAmount amount) |
量を減算して、このオブジェクトと同じ型のオブジェクトを返します。
|
static JapaneseDate |
now() |
デフォルトのタイムゾーンのシステム・クロックから現在の
JapaneseDateを取得します。 |
static JapaneseDate |
now(Clock clock) |
指定されたクロックから現在の
JapaneseDateを取得します。 |
static JapaneseDate |
now(ZoneId zone) |
指定されたタイムゾーンのシステム・クロックから現在の
JapaneseDateを取得します。 |
static JapaneseDate |
of(int prolepticYear, int month, int dayOfMonth) |
先発暦の年、月、および「月の日」フィールドから、和暦体系の日付を表す
JapaneseDateを取得します。 |
static JapaneseDate |
of(JapaneseEra era, int yearOfEra, int month, int dayOfMonth) |
紀元年、月、および「月の日」フィールドから、和暦体系の日付を表す
JapaneseDateを取得します。 |
JapaneseDate |
plus(long amountToAdd, TemporalUnit unit) |
このオブジェクトと同じ型のオブジェクトに指定された期間を追加したものを返します。
|
JapaneseDate |
plus(TemporalAmount amount) |
このオブジェクトと同じ型のオブジェクトにある時間を追加したものを返します。
|
ValueRange |
range(TemporalField field) |
指定されたフィールドの有効な値の範囲を取得します。
|
long |
toEpochDay() |
この日付をエポック日に変換します。
|
String |
toString() |
オブジェクトの文字列表現を返します。
|
ChronoPeriod |
until(ChronoLocalDate endDate) |
この日付からもう一方の日付までの期間を
ChronoPeriodとして計算します。 |
long |
until(Temporal endExclusive, TemporalUnit unit) |
もう一方の日付までの時間量を指定された単位で計算します。
|
JapaneseDate |
with(TemporalAdjuster adjuster) |
調整を行って、このオブジェクトと同じ型の調整済のオブジェクトを返します。
|
JapaneseDate |
with(TemporalField field, long newValue) |
指定されたフィールドを変更して、このオブジェクトと同じ型のオブジェクトを返します。
|
adjustInto, compareTo, format, isAfter, isBefore, isEqual, isLeapYear, isSupported, query, timeLineOrder, toString, untilgetpublic static JapaneseDate now()
JapaneseDateを取得します。
これは、デフォルトのタイムゾーンのsystem clockを問い合わせ、現在の日付を取得します。
このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。
public static JapaneseDate now(ZoneId zone)
JapaneseDateを取得します。
これはsystem clockを問い合わせて、現在の日付を取得します。 タイムゾーンを指定すると、デフォルトのタイムゾーンへの依存を避けられます。
このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。
zone - 使用するゾーンID、null以外public static JapaneseDate now(Clock clock)
JapaneseDateを取得します。
これは指定されたクロックを問い合わせ、現在の日付(今日)を取得します。 このメソッドを使用すると、テストに代替のクロックを使用できます。 代替のクロックは依存性注入を使用して導入できます。
clock - 使用するクロック、null以外DateTimeException - 現在の日付を取得できない場合public static JapaneseDate of(JapaneseEra era, int yearOfEra, int month, int dayOfMonth)
JapaneseDateを取得します。
これは、指定されたフィールドでJapaneseDateを返します。 日は年と月に対して有効である必要があり、そうでない場合は、例外がスローされます。
和暦の月と「月の日」はISO暦体系のそれらと同じです。 それらは、紀元が変わってもリセットされません。 たとえば、
6th Jan Showa 64 = ISO 1989-01-06 7th Jan Showa 64 = ISO 1989-01-07 8th Jan Heisei 1 = ISO 1989-01-08 9th Jan Heisei 1 = ISO 1989-01-09
era - 和暦の紀元、null以外yearOfEra - 和暦の紀元年month - 和暦の月、1-12dayOfMonth - 和暦の「月の日」、1-31DateTimeException - フィールドの値が範囲外である場合、または「月の日」が月に対して無効である場合、または日付が和暦の紀元でない場合public static JapaneseDate of(int prolepticYear, int month, int dayOfMonth)
JapaneseDateを取得します。
これは、指定されたフィールドでJapaneseDateを返します。 日は年と月に対して有効である必要があり、そうでない場合は、例外がスローされます。
和暦の先発暦の年、月、「月の日」はISO暦体系のそれらと同じです。 それらは、紀元が変わってもリセットされません。
prolepticYear - 和暦の先発暦の年month - 和暦の月、1-12dayOfMonth - 和暦の「月の日」、1-31DateTimeException - いずれかのフィールドの値が範囲外である場合、または「月の日」が年の月に対して無効である場合public static JapaneseDate from(TemporalAccessor temporal)
JapaneseDateを取得します。
これは、指定された時間的オブジェクトに基づいて和暦体系での日付を取得します。 TemporalAccessorは任意の日付と時間情報のセットを表し、このファクトリがJapaneseDateのインスタンスに変換します。
変換では一般に、暦体系全体で標準化されたEPOCH_DAYフィールドを使用します。
このメソッドは関数型インタフェースTemporalQueryのシグネチャに一致するため、メソッド参照JapaneseDate::fromを介して、問合せとして使用できます。
ChronoLocalDateのfromtemporal - 変換する一時オブジェクト、null以外DateTimeException - JapaneseDateに変換できない場合Chronology.date(TemporalAccessor)public JapaneseChronology getChronology()
Chronologyは使用中の暦体系を表します。 ChronoFieldの紀元およびその他のフィールドは暦によって定義されます。
ChronoLocalDateのgetChronologypublic JapaneseEra getEra()
和暦体系には、JapaneseEraによって定義される複数の紀元があります。
ChronoLocalDateのgetErapublic int lengthOfMonth()
これは月の長さを日数で返します。 月の長さはISO暦体系のそれらに一致します。
ChronoLocalDateのlengthOfMonthpublic int lengthOfYear()
ChronoLocalDateこれは年の長さを日数で返します。
デフォルトの実装ではChronoLocalDate.isLeapYear()を使用し、365または366を返します。
ChronoLocalDateのlengthOfYearpublic boolean isSupported(TemporalField field)
これは、指定されたフィールドに対して、この日付を問合せできるかどうかをチェックします。 falseの場合、rangeメソッドとgetメソッドを呼び出すと例外がスローされます。
フィールドがChronoFieldの場合、ここに問合せを実装します。 サポートされるフィールドは次のとおりです。
DAY_OF_WEEK
DAY_OF_MONTH
DAY_OF_YEAR
EPOCH_DAY
MONTH_OF_YEAR
PROLEPTIC_MONTH
YEAR_OF_ERA
YEAR
ERA
ChronoFieldインスタンスはfalseを返します。
フィールドがChronoFieldでない場合、このメソッドの結果は、thisを引数として渡してTemporalField.isSupportedBy(TemporalAccessor)を呼び出すことによって取得します。 フィールドがサポートされているかどうかはフィールドによって決定します。
ChronoLocalDateのisSupportedTemporalAccessorのisSupportedfield - チェックするフィールド、nullはfalseを返すpublic ValueRange range(TemporalField field)
TemporalAccessor
すべてのフィールドはlong整数で表現できます。 このメソッドは、その値の有効範囲を記述するオブジェクトを返します。 この時間的オブジェクトの値は、返される範囲の精度を向上するために使われます。 フィールドがサポートされていないか、他の何らかの理由で、日付/時間で範囲を返すことができない場合、例外がスローされます。
結果は有効な最小値と最大値を記述しているだけなので、それらを深く解釈しすぎないことが重要です。 たとえば、範囲内の値であっても、フィールドに対して無効な場合があります。
TemporalAccessorのrangefield - 範囲を問い合わせるフィールド、null以外public long getLong(TemporalField field)
TemporalAccessorlongとして取得します。
これは、指定されたフィールドの値について日付/時間に問い合せます。 返される値はフィールドに有効な値の範囲外になることがあります。 フィールドがサポートされていないか、他の何らかの理由で、日付/時間で値を返すことができない場合、例外がスローされます。
TemporalAccessorのgetLongfield - 取得するフィールド、null以外public JapaneseDate with(TemporalField field, long newValue)
ChronoLocalDate
これは、指定されたフィールドの値を変更して、このオブジェクトに基づいて新しいオブジェクトを返します。 たとえば、LocalDateで、これは年、月、または「月の日」を設定するために使用できます。 返されるオブジェクトはこのオブジェクトと同じ識別可能な型を持ちます。
フィールドの変更が完全には定義されていない場合もあります。 たとえば、ターゲット・オブジェクトが1月31日を表す日付である場合、月を2月に変更することは不明な場合があります。 このようなケースでは、フィールドは結果の解決を担当します。 通常は1つ前の有効な日付が選択され、この例の場合は2月の最後の有効な日になります。
ChronoLocalDateのwithTemporalのwithfield - 結果に設定するフィールド、null以外newValue - 結果のフィールドの新しい値public JapaneseDate with(TemporalAdjuster adjuster)
これは、指定されたアジャスタのルールに従って、この日付/時間を調整します。 単純なアジャスタは、年フィールドなどの1つのフィールドだけを設定するなどです。 複雑なアジャスタは、日付を月の最後の日に設定するなどです。 一般的な調整の選択は、TemporalAdjustersで指定します。 これらには、「月の最後の日」や「次の水曜日」を見つけることが含まれます。 アジャスタは、さまざまな長さの月やうるう年などの特別なケースの処理を担当します。
このメソッドを使用する方法と理由を示すいくつかのサンプル・コード:
date = date.with(Month.JULY); // most key classes implement TemporalAdjuster date = date.with(lastDayOfMonth()); // static import from Adjusters date = date.with(next(WEDNESDAY)); // static import from Adjusters and DayOfWeek
ChronoLocalDateのwithTemporalのwithadjuster - 使用するアジャスタ、null以外DateTimeException - 調整を実行できない場合ArithmeticException - 数値のオーバーフローが発生した場合public JapaneseDate plus(TemporalAmount amount)
これは、このtemporal (一時)を調整し、指定された量のルールに従って加算します。 この量は通常Periodですが、Durationなど、TemporalAmountインタフェースを実装する他のどの型であってもかまいません。
このメソッドを使用する方法と理由を示すいくつかのサンプル・コード:
date = date.plus(period); // add a Period instance date = date.plus(duration); // add a Duration instance date = date.plus(workingDays(6)); // example user-written workingDays method
plusの後にminusを呼び出しても、同じ日付/時間が返されることは保証されません。
ChronoLocalDateのplusTemporalのplusamount - 追加する量、null以外DateTimeException - 加算できない場合ArithmeticException - 数値のオーバーフローが発生した場合public JapaneseDate minus(TemporalAmount amount)
これは、このtemporal (一時)を調整し、指定された量のルールに従って減算します。 この量は通常Periodですが、Durationなど、TemporalAmountインタフェースを実装する他のどの型であってもかまいません。
このメソッドを使用する方法と理由を示すいくつかのサンプル・コード:
date = date.minus(period); // subtract a Period instance date = date.minus(duration); // subtract a Duration instance date = date.minus(workingDays(6)); // example user-written workingDays method
plusの後にminusを呼び出しても、同じ日付/時間が返されることは保証されません。
ChronoLocalDateのminusTemporalのminusamount - 減算する量、null以外DateTimeException - 減算ができない場合ArithmeticException - 数値のオーバーフローが発生した場合public JapaneseDate plus(long amountToAdd, TemporalUnit unit)
ChronoLocalDate
このメソッドは、指定された期間を加算して、このオブジェクトに基づいて新しいオブジェクトを返します。 たとえば、LocalDateで、これは年、月、または日の数を加算するために使用できます。 返されるオブジェクトはこのオブジェクトと同じ識別可能な型を持ちます。
フィールドの変更が完全には定義されていない場合もあります。 たとえば、ターゲット・オブジェクトが1月31日を表す日付である場合、1か月を加算することは不明な場合があります。 このようなケースでは、フィールドは結果の解決を担当します。 通常は1つ前の有効な日付が選択され、この例の場合は2月の最後の有効な日になります。
ChronoLocalDateのplusTemporalのplusamountToAdd - 加算する指定された単位の量、負の場合もあるunit - 加算する量の単位、nullでないpublic JapaneseDate minus(long amountToAdd, TemporalUnit unit)
ChronoLocalDate
このメソッドは、指定された期間を減算して、このオブジェクトに基づいて新しいオブジェクトを返します。 たとえば、LocalDateで、これは年、月、または日の数を減算するために使用できます。 返されるオブジェクトはこのオブジェクトと同じ識別可能な型を持ちます。
フィールドの変更が完全には定義されていない場合もあります。 たとえば、ターゲットオブジェクトが3月31日を表す日付である場合、1か月を減算することは不明な場合があります。 このようなケースでは、フィールドは結果の解決を担当します。 通常は1つ前の有効な日付が選択され、この例の場合は2月の最後の有効な日になります。
ChronoLocalDateのminusTemporalのminusamountToAdd - 減算する指定された単位の量、負の場合もあるunit - 減算する量の単位、nullでないpublic final ChronoLocalDateTime<JapaneseDate> atTime(LocalTime localTime)
ChronoLocalDateChronoLocalDateTimeを作成します。
これは、指定された時間でこの日付から形成されたChronoLocalDateTimeを返します。 日付と時間のすべての可能性のある組合わせが有効です。
ChronoLocalDateのatTimelocalTime - 使用するローカル時間、null以外public ChronoPeriod until(ChronoLocalDate endDate)
ChronoLocalDateChronoPeriodとして計算します。
これは2つの日付間の期間を計算します。 提供されたすべての暦で、年、月、日を使用して期間が計算されますが、ChronoPeriod APIでは、他の単位を使用して期間を表現できます。
開始点と終了点はthisと指定された日付です。 終了が開始より前である場合、結果は負になります。 マイナス記号は年、月、日のそれぞれで同じになります。
計算はこの日付の暦を使用して実行されます。 必要に応じて、入力日が一致するように変換されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
ChronoLocalDateのuntilendDate - 終了日(この日を含まない)、任意の暦で可能、null以外public long toEpochDay()
ChronoLocalDate
Epoch Day countは日の単純な増分カウントで、日0は1970-01-01 (ISO)です。 この定義は、すべての暦で同じであり、変換が可能です。
このデフォルトの実装は、EPOCH_DAYフィールドを問い合わせます。
ChronoLocalDateのtoEpochDaypublic boolean equals(Object obj)
このJapaneseDateを別の日付と比較して、日付が同じであることを確認します。
JapaneseDate型のオブジェクトのみが比較され、それ以外の型はfalseを返します。 2つの異なる暦の日付など、2つのTemporalAccessorインスタンスの日付を比較するには、コンパレータとしてChronoField.EPOCH_DAYを使用します。
ChronoLocalDateのequalsobj - チェックするオブジェクト、nullはfalseを返すObject.hashCode()、HashMappublic int hashCode()
ChronoLocalDateのhashCodeObject.equals(java.lang.Object), System.identityHashCode(java.lang.Object)public long until(Temporal endExclusive, TemporalUnit unit)
ChronoLocalDate
これは、1つのTemporalUnitの形で2つのChronoLocalDateオブジェクト間の時間の量を計算します。 開始点と終了点はthisと指定された日付です。 終了が開始より前である場合、結果は負になります。 このメソッドに渡されたTemporalはChronology.date(TemporalAccessor)を使用してChronoLocalDateに変換されます。 計算では、2つの日付間の完全な単位の数を表す整数を返します。 たとえば、2つの日付間の日数での量は、startDate.until(endDate, DAYS)を使用して計算できます。
このメソッドを使用する等価な方法が2つあります。 1つ目はこのメソッドを呼び出すことです。 2つ目はTemporalUnit.between(Temporal, Temporal)を使用することです。
// these two lines are equivalent amount = start.until(end, MONTHS); amount = MONTHS.between(start, end);この選択は、コードが読みやすくなるのはどちらかに基づいて行ってください。
計算はChronoUnitのこのメソッドに実装します。 単位DAYS、WEEKS、MONTHS、YEARS、DECADES、CENTURIES、MILLENNIA、およびERASはすべての実装でサポートしてください。 その他のChronoUnit値は例外をスローします。
単位がChronoUnitでない場合、このメソッドの結果は、thisを1つ目の引数として、変換される入力temporal (一時)を2つ目の引数として渡してTemporalUnit.between(Temporal, Temporal)を呼び出すことによって取得します。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
ChronoLocalDateのuntilTemporalのuntilendExclusive - 終了日、排他的、同じ暦でChronoLocalDateに変換される、null以外unit - 量を測定する単位、null以外public String toString()
ObjecttoStringメソッドは、このオブジェクトを「テキストで表す」文字列を返します。 この結果は、人間が読める簡潔で有益な情報であるべきです。 すべてのサブクラスで、このメソッドをオーバーライドすることをお薦めします。
クラスObjectのtoStringメソッドは、オブジェクトがインスタンスになっている元のクラスの名前、アットマーク文字「@」、およびオブジェクトのハッシュ・コードの符号なし16進数表現から構成される文字列を返します。 つまり、このメソッドは次の値と等しい文字列を返します。
getClass().getName() + '@' + Integer.toHexString(hashCode())
ChronoLocalDateのtoStringtoString、クラスObject バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。