public final class JapaneseChronology extends AbstractChronology implements Serializable
この暦は和暦体系のルールを定義します。この暦体系は主に日本で使用されています。和暦体系は、紀元ベースの年の番号付けを除いて、ISO暦体系と同じです。
日本では明治6年からグレゴリオ暦を導入しています。明治以降の紀元のみサポートされ、明治6年1月1日より前の日付はサポートされません。
サポートされるChronoField
インスタンス:
DAY_OF_WEEK
DAY_OF_MONTH
DAY_OF_YEAR
EPOCH_DAY
MONTH_OF_YEAR
PROLEPTIC_MONTH
YEAR_OF_ERA
YEAR
ERA
修飾子と型 | フィールドと説明 |
---|---|
static JapaneseChronology |
INSTANCE
和暦の暦のシングルトン・インスタンス。
|
修飾子と型 | メソッドと説明 |
---|---|
JapaneseDate |
date(Era era, int yearOfEra, int month, int dayOfMonth)
紀元、紀元年、月、および「月の日」フィールドから、和暦体系のローカル日付を取得します。
|
JapaneseDate |
date(int prolepticYear, int month, int dayOfMonth)
先発グレゴリオ暦の年、月、および「月の日」フィールドから、和暦体系のローカル日付を取得します。
|
JapaneseDate |
date(TemporalAccessor temporal)
別の時間的オブジェクトから、この暦のローカル日付を取得します。
|
JapaneseDate |
dateEpochDay(long epochDay)
エポック日から、和暦体系のローカル日付を取得します。
|
JapaneseDate |
dateNow()
デフォルトのタイムゾーンのシステム・クロックからこの暦の現在のローカル日付を取得します。
|
JapaneseDate |
dateNow(Clock clock)
指定されたクロックからこの暦の現在のローカル日付を取得します。
|
JapaneseDate |
dateNow(ZoneId zone)
指定されたタイムゾーンのシステム・クロックからこの暦の現在のローカル日付を取得します。
|
JapaneseDate |
dateYearDay(Era era, int yearOfEra, int dayOfYear)
紀元、紀元年、および「年の日」フィールドから、和暦体系のローカル日付を取得します。
|
JapaneseDate |
dateYearDay(int prolepticYear, int dayOfYear)
先発グレゴリオ暦の年および「年の日」フィールドから、和暦体系のローカル日付を取得します。
|
JapaneseEra |
eraOf(int eraValue)
指定された数値から、暦体系の紀元オブジェクトを返します。
|
List<Era> |
eras()
暦の紀元のリストを取得します。
|
String |
getCalendarType()
基礎となる暦体系のカレンダ・タイプ(japanese)を取得します。
|
String |
getId()
暦のID (Japanese)を取得します。
|
boolean |
isLeapYear(long prolepticYear)
指定された年がうるう年であるかどうかをチェックします。
|
ChronoLocalDateTime<JapaneseDate> |
localDateTime(TemporalAccessor temporal)
別の時間的オブジェクトから、この暦のローカル日付/時間を取得します。
|
int |
prolepticYear(Era era, int yearOfEra)
紀元と紀元年を指定して先発グレゴリオ暦の年を計算します。
|
ValueRange |
range(ChronoField field)
指定されたフィールドの有効な値の範囲を取得します。
|
JapaneseDate |
resolveDate(Map<TemporalField,Long> fieldValues, ResolverStyle resolverStyle)
解析された
ChronoField の値を解析時の日付に解決します。 |
ChronoZonedDateTime<JapaneseDate> |
zonedDateTime(Instant instant, ZoneId zone)
Instant からこの暦でChronoZonedDateTime を取得します。 |
ChronoZonedDateTime<JapaneseDate> |
zonedDateTime(TemporalAccessor temporal)
もう一方のtemporal (一時)オブジェクトからこの暦で
ChronoZonedDateTime を取得します。 |
compareTo, equals, hashCode, toString
from, getDisplayName, period
public static final JapaneseChronology INSTANCE
public String getId()
このIDはChronology
を一意に識別します。これは、AbstractChronology.of(String)
を使用して、Chronology
を検索するために使用できます。
Chronology
のgetId
getCalendarType()
public String getCalendarType()
カレンダ・タイプはUnicode Locale Data Markup Language (LDML)の仕様によって定義された識別子です。これは、AbstractChronology.of(String)
を使用して、Chronology
を検索するために使用できます。それは、キー「ca」でLocale.getUnicodeLocaleType(String)
からアクセス可能なロケールの一部としても使用できます。
Chronology
のgetCalendarType
getId()
public JapaneseDate date(Era era, int yearOfEra, int month, int dayOfMonth)
和暦の月と「月の日」は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
Chronology
のdate
era
- 和暦の紀元、null以外yearOfEra
- 紀元の年month
- 年の月dayOfMonth
- 「月の日」DateTimeException
- 日付を作成できない場合ClassCastException
- era
がJapaneseEra
でない場合public JapaneseDate date(int prolepticYear, int month, int dayOfMonth)
和暦の先発グレゴリオ暦の年、月、「月の日」はISO暦体系のそれらと同じです。それらは、紀元が変わってもリセットされません。
Chronology
のdate
prolepticYear
- 先発グレゴリオ暦の年month
- 年の月dayOfMonth
- 「月の日」DateTimeException
- 日付を作成できない場合public JapaneseDate dateYearDay(Era era, int yearOfEra, int dayOfYear)
このファクトリの「年の日」は紀元年の開始を基準にして表されます。この定義では、紀元の変更によって、紀元年が1にリセットされる年でのみ、「年の日」の通常の意味が変わります。たとえば、
6th Jan Showa 64 = day-of-year 6 7th Jan Showa 64 = day-of-year 7 8th Jan Heisei 1 = day-of-year 1 9th Jan Heisei 1 = day-of-year 2
Chronology
のdateYearDay
era
- 和暦の紀元、null以外yearOfEra
- 紀元の年dayOfYear
- 「年の日」DateTimeException
- 日付を作成できない場合ClassCastException
- era
がJapaneseEra
でない場合public JapaneseDate dateYearDay(int prolepticYear, int dayOfYear)
このファクトリの「年の日」は先発グレゴリオ暦の年の開始を基準にして表されます。和暦の先発グレゴリオ暦の年と「年の日」はISO暦体系のそれらと同じです。それらは、紀元が変わってもリセットされません。
Chronology
のdateYearDay
prolepticYear
- 先発グレゴリオ暦の年dayOfYear
- 「年の日」DateTimeException
- 日付を作成できない場合public JapaneseDate dateEpochDay(long epochDay)
Chronology
のdateEpochDay
epochDay
- エポック日DateTimeException
- 日付を作成できない場合public JapaneseDate dateNow()
Chronology
これは、デフォルトのタイムゾーンのsystem clock
を問い合わせ、現在の日付を取得します。
このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。
Chronology
のdateNow
public JapaneseDate dateNow(ZoneId zone)
Chronology
これはsystem clock
を問い合わせて、現在の日付を取得します。タイムゾーンを指定すると、デフォルトのタイムゾーンへの依存を避けられます。
このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。
Chronology
のdateNow
zone
- 使用するゾーンID、null以外public JapaneseDate dateNow(Clock clock)
Chronology
これは指定されたクロックを問い合わせ、現在の日付(今日)を取得します。このメソッドを使用すると、テストに代替のクロックを使用できます。代替のクロックはdependency injection
を使用して導入できます。
Chronology
のdateNow
clock
- 使用するクロック、null以外public JapaneseDate date(TemporalAccessor temporal)
Chronology
これは、指定された時間的オブジェクトに基づいてこの暦での日付を取得します。TemporalAccessor
は任意の日付と時間情報のセットを表し、このファクトリがChronoLocalDate
のインスタンスに変換します。
変換では一般に、暦体系全体で標準化されたEPOCH_DAY
フィールドを使用します。
このメソッドは関数型インタフェースTemporalQuery
のシグネチャに一致するため、メソッド参照aChronology::date
を介して、問合せとして使用できます。
Chronology
のdate
temporal
- 変換する一時オブジェクト、null以外ChronoLocalDate.from(TemporalAccessor)
public ChronoLocalDateTime<JapaneseDate> localDateTime(TemporalAccessor temporal)
Chronology
これは、指定された時間的オブジェクトに基づいてこの暦での日付/時間を取得します。TemporalAccessor
は任意の日付と時間情報のセットを表し、このファクトリがChronoLocalDateTime
のインスタンスに変換します。
変換では、時間的オブジェクトからChronoLocalDate
とLocalTime
を抽出し、組み合わせます。実装では、関連オブジェクトと同等のそれらのフィールドにアクセスするなどの最適化を実行することが許可されます。結果ではこの暦を使用します。
このメソッドは関数型インタフェースTemporalQuery
のシグネチャに一致するため、メソッド参照aChronology::localDateTime
を介して、問合せとして使用できます。
Chronology
のlocalDateTime
temporal
- 変換する一時オブジェクト、null以外ChronoLocalDateTime.from(TemporalAccessor)
public ChronoZonedDateTime<JapaneseDate> zonedDateTime(TemporalAccessor temporal)
Chronology
ChronoZonedDateTime
を取得します。
これは、指定された時間的オブジェクトに基づいてこの暦でのゾーン付きの日付/時間を取得します。TemporalAccessor
は任意の日付と時間情報のセットを表し、このファクトリがChronoZonedDateTime
のインスタンスに変換します。
変換では、まず時間的オブジェクトからZoneId
を取得し、必要に応じて、ZoneOffset
を使用します。次に、Instant
を取得しようとし、必要に応じて、ChronoLocalDateTime
を使用します。結果はZoneId
またはZoneOffset
とInstant
またはChronoLocalDateTime
のいずれかの組み合わせです。実装では、関連オブジェクトと同等のそれらのフィールドにアクセスするなどの最適化を実行することが許可されます。結果ではこの暦を使用します。
このメソッドは関数型インタフェースTemporalQuery
のシグネチャに一致するため、メソッド参照aChronology::zonedDateTime
を介して、問合せとして使用できます。
Chronology
のzonedDateTime
temporal
- 変換する一時オブジェクト、null以外ChronoZonedDateTime.from(TemporalAccessor)
public ChronoZonedDateTime<JapaneseDate> zonedDateTime(Instant instant, ZoneId zone)
Chronology
Instant
からこの暦でChronoZonedDateTime
を取得します。
これは、指定された同じインスタントで、ゾーン付きの日付/時間を取得します。
Chronology
のzonedDateTime
instant
- 日付/時間の作成元のインスタント、null以外zone
- タイムゾーン、null以外public boolean isLeapYear(long prolepticYear)
和暦のうるう年は、ISO暦のうるう年と一致して発生します。このメソッドは渡される年を検証せず、サポートされる範囲内の年に対してのみ明確に定義された結果が得られます。
Chronology
のisLeapYear
prolepticYear
- チェックする先発グレゴリオ暦の年、範囲が検証されないpublic int prolepticYear(Era era, int yearOfEra)
Chronology
これは紀元と紀元の年を単一の先発グレゴリオ暦の年フィールドに組み合わせます。
JapaneseChronology
など、暦で紀元が頻繁に使われている場合、紀元の年が紀元に照らして検証されます。他の暦の場合、検証はオプションです。
Chronology
のprolepticYear
era
- 暦の正しいタイプの紀元、null以外yearOfEra
- 暦の紀元の年public JapaneseEra eraOf(int eraValue)
JapaneseEra.HEISEI
、JapaneseEra.SHOWA
、JapaneseEra.TAISHO
、JapaneseEra.MEIJI
の数値については、各紀元の説明を参照してください。明治以降の紀元のみがサポートされています。Chronology
のeraOf
eraValue
- 紀元の値Era
DateTimeException
- eraValue
が無効な場合public List<Era> eras()
Chronology
ほとんどの暦体系には、その中で年が意味を持つ紀元があります。暦体系が紀元の概念をサポートしていない場合、空のリストを返す必要があります。
Chronology
のeras
public ValueRange range(ChronoField field)
Chronology
すべてのフィールドはlong
整数で表現できます。このメソッドは、その値の有効範囲を記述するオブジェクトを返します。
結果は有効な最小値と最大値を記述しているだけなので、それらを深く解釈しすぎないことが重要です。たとえば、範囲内の値であっても、フィールドに対して無効な場合があります。
このメソッドは、暦でフィールドをサポートしているかどうかに関係なく、結果を返します。
Chronology
のrange
field
- 範囲を取得するフィールド、null以外public JapaneseDate resolveDate(Map<TemporalField,Long> fieldValues, ResolverStyle resolverStyle)
AbstractChronology
ChronoField
の値を解析時の日付に解決します。
ほとんどのTemporalField
実装は、フィールド上の解決メソッドを使用して解決されます。これに対し、ChronoField
クラスは暦に関連する意味のみを持つフィールドを定義します。そのため、ChronoField
日付フィールドは、ここで特定の暦のコンテキストで解決されます。
ChronoField
インスタンスはこのメソッドによって解決され、サブクラスでオーバーライドできます。
EPOCH_DAY
- 存在する場合、日付に変換され、他のすべての日付フィールドがこの日付に対して照合されます。
PROLEPTIC_MONTH
- 存在する場合、YEAR
とMONTH_OF_YEAR
に分割されます。モードがstrictまたはsmartである場合、フィールドは検証されます。
YEAR_OF_ERA
とERA
- 両方とも存在する場合、それらが組み合わされてYEAR
を形成します。lenientモードではYEAR_OF_ERA
の範囲は検証されず、smartおよびstrictモードでは検証されます。ERA
は3つすべてのモードで範囲が検証されます。YEAR_OF_ERA
のみが存在し、モードがsmartまたはlenientの場合、最後の使用可能な紀元と想定されます。strictモードでは、紀元が想定されず、YEAR_OF_ERA
はそのままの状態にされます。ERA
のみが存在する場合、それはそのままの状態にされます。
YEAR
、MONTH_OF_YEAR
、DAY_OF_MONTH
- 3つすべてが存在する場合、それらが組み合わされて日付が形成されます。3つすべてのモードで、YEAR
が検証されます。モードがsmartまたはstrictの場合、月と日が検証されます。モードがlenientの場合、要求された年の最初の月の最初の日で日付を作成し、次に月数での差、次に日数での差を加算する場合と等しい方法で、日付が組み合わされます。モードがsmartで、「月の日」が年-月の最大より大きい場合、「月の日」は最後の「月の日」に調整されます。モードがstrictの場合、3つのフィールドは有効な日付を形成している必要があります。
YEAR
とDAY_OF_YEAR
- 両方とも存在する場合、それらが組み合わされて日付が形成されます。3つすべてのモードで、YEAR
が検証されます。モードがlenientの場合、要求された年の最初の日で日付を作成し、次に日数での差を加算する場合と等しい方法で、日付が組み合わされます。モードがsmartまたはstrictの場合、2つのフィールドは有効な日付を形成している必要があります。
YEAR
、MONTH_OF_YEAR
、ALIGNED_WEEK_OF_MONTH
、ALIGNED_DAY_OF_WEEK_IN_MONTH
- 4つすべてが存在する場合、それらが組み合わされて日付が形成されます。3つすべてのモードで、YEAR
が検証されます。モードがlenientの場合、要求された年の最初の月の最初の日で日付を作成し、次に月数での差、次に週数での差、次に日数での差を加算する場合と等しい方法で、日付が組み合わされます。モードがsmartまたはstrictの場合、4つすべてのフィールドがそれらの外側の範囲に対して検証されます。次に、要求された年と月の最初の日で日付を作成し、次に週数と日数での量を加算して、それらの値に到達する場合と等しい方法で、日付が組み合わされます。モードがstrictの場合、日付がさらに検証され、日と週の調整によって月が変更されていないかどうかがチェックされます。
YEAR
、MONTH_OF_YEAR
、ALIGNED_WEEK_OF_MONTH
、DAY_OF_WEEK
- 4つすべてが存在する場合、それらが組み合わされて日付が形成されます。このアプローチは、ALIGNED_DAY_OF_WEEK_IN_MONTH
の年、月、および週についての上記の説明と同じです。年、月、および週が処理されると、曜日が次または同じ一致する曜日で調整されます。
YEAR
、ALIGNED_WEEK_OF_YEAR
、ALIGNED_DAY_OF_WEEK_IN_YEAR
- 3つすべてが存在する場合、それらが組み合わされて日付が形成されます。3つすべてのモードで、YEAR
が検証されます。モードがlenientの場合、要求された年の最初の日で日付を作成し、次に週数での差、次に日数での差を加算する場合と等しい方法で、日付が組み合わされます。モードがsmartまたはstrictの場合、3つすべてのフィールドがそれらの外側の範囲に対して検証されます。次に、要求された年の最初の日で日付を作成し、次に週数と日数での量を加算して、それらの値に到達する場合と等しい方法で、日付が組み合わされます。モードがstrictの場合、日付がさらに検証され、日と週の調整によって年が変更されていないかどうかがチェックされます。
YEAR
、ALIGNED_WEEK_OF_YEAR
、DAY_OF_WEEK
- 3つすべてが存在する場合、それらが組み合わされて日付が形成されます。このアプローチは、ALIGNED_DAY_OF_WEEK_IN_YEAR
の年および週についての上記の説明と同じです。年および週が処理されると、曜日が次または同じ一致する曜日で調整されます。
デフォルト実装はほとんどの暦体系に適切です。ChronoField.ERA
なしでChronoField.YEAR_OF_ERA
が見つかった場合、Chronology.eras()
の最後の紀元が使用されます。実装では、7日の週、最初の「月の日」の値が1、最初の「年の日」の値が1、最初の月と年が必ず存在するものと想定します。
Chronology
のresolveDate
AbstractChronology
のresolveDate
fieldValues
- フィールドと値のマップ、更新可能、null以外resolverStyle
- 要求された解決のタイプ、null以外 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.