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, until
get
public 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
のfrom
temporal
- 変換する一時オブジェクト、null以外DateTimeException
- JapaneseDate
に変換できない場合Chronology.date(TemporalAccessor)
public JapaneseChronology getChronology()
Chronology
は使用中の暦体系を表します。ChronoField
の紀元およびその他のフィールドは暦によって定義されます。
ChronoLocalDate
のgetChronology
public JapaneseEra getEra()
和暦体系には、JapaneseEra
によって定義される複数の紀元があります。
ChronoLocalDate
のgetEra
public int lengthOfMonth()
これは月の長さを日数で返します。月の長さはISO暦体系のそれらに一致します。
ChronoLocalDate
のlengthOfMonth
public int lengthOfYear()
ChronoLocalDate
これは年の長さを日数で返します。
デフォルトの実装ではChronoLocalDate.isLeapYear()
を使用し、365または366を返します。
ChronoLocalDate
のlengthOfYear
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を返すpublic ValueRange range(TemporalField field)
TemporalAccessor
すべてのフィールドはlong
整数で表現できます。このメソッドは、その値の有効範囲を記述するオブジェクトを返します。この時間的オブジェクトの値は、返される範囲の精度を向上するために使われます。フィールドがサポートされていないか、他の何らかの理由で、日付/時間で範囲を返すことができない場合、例外がスローされます。
結果は有効な最小値と最大値を記述しているだけなので、それらを深く解釈しすぎないことが重要です。たとえば、範囲内の値であっても、フィールドに対して無効な場合があります。
TemporalAccessor
のrange
field
- 範囲を問い合わせるフィールド、null以外public long getLong(TemporalField field)
TemporalAccessor
long
として取得します。
これは、指定されたフィールドの値の日付/時間を問い合わせます。返される値はフィールドに有効な値の範囲外になることがあります。フィールドがサポートされていないか、他の何らかの理由で、日付/時間で値を返すことができない場合、例外がスローされます。
TemporalAccessor
のgetLong
field
- 取得するフィールド、null以外public JapaneseDate with(TemporalField field, long newValue)
ChronoLocalDate
これは、指定されたフィールドの値を変更して、このオブジェクトに基づいて新しいオブジェクトを返します。たとえば、LocalDate
で、これは年、月、または「月の日」を設定するために使用できます。返されるオブジェクトはこのオブジェクトと同じ識別可能な型を持ちます。
フィールドの変更が完全には定義されていない場合もあります。たとえば、ターゲット・オブジェクトが1月31日を表す日付である場合、月を2月に変更することは不明な場合があります。このようなケースでは、フィールドは結果の解決を担当します。通常は1つ前の有効な日付が選択され、この例の場合は2月の最後の有効な日になります。
ChronoLocalDate
のwith
Temporal
のwith
field
- 結果に設定するフィールド、null以外newValue
- 結果のフィールドの新しい値public JapaneseDate with(TemporalAdjuster adjuster)
これは、指定されたアジャスタのルールに従って、この日付/時間を調整します。単純なアジャスタは、年フィールドなどの1つのフィールドだけを設定するなどです。複雑なアジャスタは、日付を月の最後の日に設定するなどです。一般的な調整の選択は、TemporalAdjuster
で指定します。これらには、「月の最後の日」や「次の水曜日」を見つけることが含まれます。アジャスタは、さまざまな長さの月やうるう年などの特別なケースの処理を担当します。
このメソッドを使用する方法と理由を示すいくつかのサンプル・コード:
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以外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
のplus
Temporal
のplus
amount
- 追加する量、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
のminus
Temporal
のminus
amount
- 減算する量、null以外DateTimeException
- 減算ができない場合ArithmeticException
- 数値のオーバーフローが発生した場合public JapaneseDate plus(long amountToAdd, TemporalUnit unit)
ChronoLocalDate
このメソッドは、指定された期間を加算して、このオブジェクトに基づいて新しいオブジェクトを返します。たとえば、LocalDate
で、これは年、月、または日の数を加算するために使用できます。返されるオブジェクトはこのオブジェクトと同じ識別可能な型を持ちます。
フィールドの変更が完全には定義されていない場合もあります。たとえば、ターゲット・オブジェクトが1月31日を表す日付である場合、1か月を加算することは不明な場合があります。このようなケースでは、フィールドは結果の解決を担当します。通常は1つ前の有効な日付が選択され、この例の場合は2月の最後の有効な日になります。
ChronoLocalDate
のplus
Temporal
のplus
amountToAdd
- 加算する指定された単位の量、負の場合もあるunit
- 追加する期間の単位、null以外public JapaneseDate minus(long amountToAdd, TemporalUnit unit)
ChronoLocalDate
このメソッドは、指定された期間を減算して、このオブジェクトに基づいて新しいオブジェクトを返します。たとえば、LocalDate
で、これは年、月、または日の数を減算するために使用できます。返されるオブジェクトはこのオブジェクトと同じ識別可能な型を持ちます。
フィールドの変更が完全には定義されていない場合もあります。たとえば、ターゲットオブジェクトが3月31日を表す日付である場合、1か月を減算することは不明な場合があります。このようなケースでは、フィールドは結果の解決を担当します。通常は1つ前の有効な日付が選択され、この例の場合は2月の最後の有効な日になります。
ChronoLocalDate
のminus
Temporal
のminus
amountToAdd
- 減算する指定された単位の量、負の場合もあるunit
- 減算する期間の単位、null以外public final ChronoLocalDateTime<JapaneseDate> atTime(LocalTime localTime)
ChronoLocalDate
ChronoLocalDateTime
を作成します。
これは、指定された時間でこの日付から形成されたChronoLocalDateTime
を返します。日付と時間のすべての可能性のある組合わせが有効です。
ChronoLocalDate
のatTime
localTime
- 使用するローカル時間、null以外public ChronoPeriod until(ChronoLocalDate endDate)
ChronoLocalDate
ChronoPeriod
として計算します。
これは2つの日付間の期間を計算します。提供されたすべての暦で、年、月、日を使用して期間が計算されますが、ChronoPeriod
APIでは、他の単位を使用して期間を表現できます。
開始点と終了点はthis
と指定された日付です。終了が開始より前である場合、結果は負になります。マイナス記号は年、月、日のそれぞれで同じになります。
計算はこの日付の暦を使用して実行されます。必要に応じて、入力日が一致するように変換されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
ChronoLocalDate
のuntil
endDate
- 終了日(この日を含まない)、任意の暦で可能、null以外public long toEpochDay()
ChronoLocalDate
Epoch Day count
は日の単純な増分カウントで、日0は1970-01-01 (ISO)です。この定義は、すべての暦で同じであり、変換が可能です。
このデフォルトの実装は、EPOCH_DAY
フィールドを問い合わせます。
ChronoLocalDate
のtoEpochDay
public boolean equals(Object obj)
このJapaneseDate
を別の日付と比較して、日付が同じであることを確認します。
JapaneseDate
型のオブジェクトのみが比較され、それ以外の型はfalseを返します。2つの異なる暦の日付など、2つのTemporalAccessor
インスタンスの日付を比較するには、コンパレータとしてChronoField.EPOCH_DAY
を使用します。
ChronoLocalDate
のequals
obj
- チェックするオブジェクト、nullはfalseを返すObject.hashCode()
、HashMap
public int hashCode()
ChronoLocalDate
のhashCode
Object.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
のuntil
Temporal
のuntil
endExclusive
- 終了日、排他的、同じ暦でChronoLocalDate
に変換される、null以外unit
- 量を測定する単位、null以外public String toString()
Object
toString
メソッドは、このオブジェクトを「テキストで表す」文字列を返します。この結果は、人間が読める簡潔で有益な情報であるべきです。すべてのサブクラスで、このメソッドをオーバーライドすることをお薦めします。
クラスObject
のtoString
メソッドは、オブジェクトがインスタンスになっている元のクラスの名前、アットマーク文字「@
」、およびオブジェクトのハッシュ・コードの符号なし16進数表現から構成される文字列を返します。つまり、このメソッドは次の値と等しい文字列を返します。
getClass().getName() + '@' + Integer.toHexString(hashCode())
ChronoLocalDate
のtoString
toString
、クラス: Object
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.