- java.lang.Object
-
- java.time.chrono.JapaneseDate
-
- すべての実装されたインタフェース:
Serializable
,Comparable<ChronoLocalDate>
,ChronoLocalDate
,Temporal
,TemporalAccessor
,TemporalAdjuster
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
メソッドを使用することをお薦めします。- 実装要件:
- このクラスは不変でスレッドセーフです。
- 導入されたバージョン:
- 1.8
- 関連項目:
- 直列化された形式
-
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 boolean
equals(Object obj)
暦を含めて、この日付を別の日付と比較します。static JapaneseDate
from(TemporalAccessor temporal)
時間的オブジェクトからJapaneseDate
を取得します。JapaneseChronology
getChronology()
和暦体系であるこの日付の暦を取得します。JapaneseEra
getEra()
この日付で使用可能な紀元を取得します。int
hashCode()
この日付のハッシュ・コード。boolean
isSupported(TemporalField field)
指定されたフィールドがサポートされているかどうかをチェックします。int
lengthOfMonth()
この日付によって表される月の長さを返します。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(TemporalAmount amount)
このオブジェクトと同じ型のオブジェクトにある時間を追加したものを返します。String
toString()
オブジェクトの文字列表現を返します。long
until(Temporal endExclusive, TemporalUnit unit)
もう一方の日付までの時間量を指定された単位で計算します。JapaneseDate
with(TemporalAdjuster adjuster)
調整を行って、このオブジェクトと同じ型の調整済のオブジェクトを返します。-
インタフェース java.time.chrono.ChronoLocalDateで宣言されたメソッド
adjustInto, atTime, compareTo, format, isAfter, isBefore, isEqual, isLeapYear, isSupported, lengthOfYear, minus, plus, query, toEpochDay, toString, until, until, with
-
インタフェース java.time.temporal.TemporalAccessorで宣言されたメソッド
get, getLong, range
-
-
-
-
メソッドの詳細
-
now
public static JapaneseDate now()
デフォルトのタイムゾーンのシステム・クロックから現在のJapaneseDate
を取得します。これは、デフォルトのタイムゾーンの
system clock
を問い合わせ、現在の日付を取得します。このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。
- 戻り値:
- システムクロックとデフォルトのタイムゾーンを使用した現在の日付、null以外
-
now
public static JapaneseDate now(ZoneId zone)
指定されたタイムゾーンのシステム・クロックから現在のJapaneseDate
を取得します。これは
system clock
を問い合わせて、現在の日付を取得します。 タイムゾーンを指定すると、デフォルトのタイムゾーンへの依存を避けられます。このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。
- パラメータ:
zone
- 使用するゾーンID、null以外- 戻り値:
- システムクロックを使用した現在の日付、null以外
-
now
public static JapaneseDate now(Clock clock)
指定されたクロックから現在のJapaneseDate
を取得します。これは指定されたクロックを問い合わせ、現在の日付(今日)を取得します。 このメソッドを使用すると、テストに代替のクロックを使用できます。 代替のクロックは依存性注入を使用して導入できます。
- パラメータ:
clock
- 使用するクロック、null以外- 戻り値:
- 現在の日付、null以外
- 例外:
DateTimeException
- 現在の日付を取得できない場合
-
of
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-31- 戻り値:
- 和暦体系の日付、null以外
- 例外:
DateTimeException
- フィールドの値が範囲外である場合、または「月の日」が月に対して無効である場合、または日付が和暦の紀元でない場合
-
of
public static JapaneseDate of(int prolepticYear, int month, int dayOfMonth)
先発暦の年、月、および「月の日」フィールドから、和暦体系の日付を表すJapaneseDate
を取得します。これは、指定されたフィールドで
JapaneseDate
を返します。 日は年と月に対して有効である必要があり、そうでない場合は、例外がスローされます。和暦の先発暦の年、月、「月の日」はISO暦体系のそれらと同じです。 それらは、紀元が変わってもリセットされません。
- パラメータ:
prolepticYear
- 和暦の先発暦の年month
- 和暦の月、1-12dayOfMonth
- 和暦の「月の日」、1-31- 戻り値:
- 和暦体系の日付、null以外
- 例外:
DateTimeException
- いずれかのフィールドの値が範囲外である場合、または「月の日」が年の月に対して無効である場合
-
from
public static JapaneseDate from(TemporalAccessor temporal)
時間的オブジェクトからJapaneseDate
を取得します。これは、指定された時間的オブジェクトに基づいて和暦体系での日付を取得します。
TemporalAccessor
は任意の日付と時間情報のセットを表し、このファクトリがJapaneseDate
のインスタンスに変換します。変換では一般に、暦体系全体で標準化された
EPOCH_DAY
フィールドを使用します。このメソッドは関数型インタフェース
TemporalQuery
のシグネチャに一致するため、メソッド参照JapaneseDate::from
を介して、問合せとして使用できます。- パラメータ:
temporal
- 変換する一時オブジェクト、null以外- 戻り値:
- 和暦体系の日付、null以外
- 例外:
DateTimeException
-JapaneseDate
に変換できない場合- 関連項目:
Chronology.date(TemporalAccessor)
-
getChronology
public JapaneseChronology getChronology()
和暦体系であるこの日付の暦を取得します。Chronology
は使用中の暦体系を表します。ChronoField
の紀元およびその他のフィールドは暦によって定義されます。- 定義:
- インタフェース
ChronoLocalDate
のgetChronology
- 戻り値:
- 和暦の暦、null以外
-
getEra
public JapaneseEra getEra()
この日付で使用可能な紀元を取得します。和暦体系には、
JapaneseEra
によって定義される複数の紀元があります。- 定義:
- インタフェース
ChronoLocalDate
のgetEra
- 戻り値:
- この日付に該当する紀元、null以外
-
lengthOfMonth
public int lengthOfMonth()
この日付によって表される月の長さを返します。これは月の長さを日数で返します。 月の長さはISO暦体系のそれらに一致します。
- 定義:
- インタフェース
ChronoLocalDate
のlengthOfMonth
- 戻り値:
- 日数での月の長さ
-
isSupported
public 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
のisSupported
- 定義:
- インタフェース
TemporalAccessor
のisSupported
- パラメータ:
field
- チェックするフィールド、nullはfalseを返す- 戻り値:
- フィールドがこの日付でサポートされている場合はtrue、そうでない場合はfalse
-
with
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
のwith
- 定義:
- インタフェース
Temporal
のwith
- パラメータ:
adjuster
- 使用するアジャスタ、null以外- 戻り値:
- 指定された調整を行った同じ型のオブジェクト、null以外
- 例外:
DateTimeException
- 調整を実行できない場合ArithmeticException
- 数値のオーバーフローが発生した場合
-
plus
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
のplus
- 定義:
- インタフェース
Temporal
のplus
- パラメータ:
amount
- 追加する量、null以外- 戻り値:
- 指定された調整を行った同じ型のオブジェクト、null以外
- 例外:
DateTimeException
- 加算できない場合ArithmeticException
- 数値のオーバーフローが発生した場合
-
minus
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
のminus
- 定義:
- インタフェース
Temporal
のminus
- パラメータ:
amount
- 減算する量、null以外- 戻り値:
- 指定された調整を行った同じ型のオブジェクト、null以外
- 例外:
DateTimeException
- 減算ができない場合ArithmeticException
- 数値のオーバーフローが発生した場合
-
equals
public boolean equals(Object obj)
暦を含めて、この日付を別の日付と比較します。この
JapaneseDate
を別の日付と比較して、日付が同じであることを確認します。JapaneseDate
型のオブジェクトのみが比較され、それ以外の型はfalseを返します。 2つの異なる暦の日付など、2つのTemporalAccessor
インスタンスの日付を比較するには、コンパレータとしてChronoField.EPOCH_DAY
を使用します。- 定義:
- インタフェース
ChronoLocalDate
のequals
- パラメータ:
obj
- チェックするオブジェクト、nullはfalseを返す- 戻り値:
- これが他方の日付と等しい場合はtrue
- 関連項目:
Object.hashCode()
、HashMap
-
hashCode
public int hashCode()
この日付のハッシュ・コード。- 定義:
- インタフェース
ChronoLocalDate
のhashCode
- 戻り値:
- 暦と日付にのみ基づいた適切なハッシュ・コード
- 関連項目:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
until
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
のuntil
- 定義:
- インタフェース
Temporal
のuntil
- パラメータ:
endExclusive
- 終了日、排他的、同じ暦でChronoLocalDate
に変換される、null以外unit
- 量を測定する単位、null以外- 戻り値:
- この日付と終了日の間の時間の量
-
toString
public String toString()
次のクラスからコピーされた説明:Object
オブジェクトの文字列表現を返します。 一般に、toString
メソッドは、このオブジェクトを「テキストで表す」文字列を返します。 この結果は、人間が読める簡潔で有益な情報であるべきです。 すべてのサブクラスで、このメソッドをオーバーライドすることをお薦めします。クラス
Object
のtoString
メソッドは、オブジェクトがインスタンスになっている元のクラスの名前、アットマーク文字「@
」、およびオブジェクトのハッシュ・コードの符号なし16進数表現から構成される文字列を返します。 つまり、このメソッドは次の値と等しい文字列を返します。getClass().getName() + '@' + Integer.toHexString(hashCode())
- 定義:
- インタフェース
ChronoLocalDate
のtoString
- オーバーライド:
toString
、クラスObject
- 戻り値:
- このオブジェクトの文字列表現
-
-