モジュール java.base
パッケージ java.time.temporal

クラスJulianFields


  • public final class JulianFields
    extends Object
    ユリウス日へのアクセスを提供する一連の日付フィールドです。

    ユリウス日は日付と時間を表現する標準的な方法で、科学界で一般的に使用されています。 これは完全な1日の何日分かを10進数で表し、1日は正午に始まります。 このクラスは、1日を深夜零時からカウントするユリウス日のバリエーションを表します。

    フィールドはEPOCH_DAYを基準にして実装されます。 フィールドがサポートされ、問合せと設定ができるのは、EPOCH_DAYが使用可能な場合です。 フィールドはすべての暦で動作します。

    実装要件:
    これは不変でスレッドセーフなクラスです。
    導入されたバージョン:
    1.8
    • フィールドの詳細

      • JULIAN_DAY

        public static final TemporalField JULIAN_DAY
        ユリウス日を表すフィールド。

        これは整数ベースのユリウス日です。 ユリウス日は、完全な1日の何日分かを日0からカウントして表す、よく知られたシステムです。日0は、ユリウス暦のBCE 4713年1月1日、グレゴリオ暦の-4713-11-24と定義されます。 フィールドの名前は「JulianDay」、ベース単位は「DAYS」です。 フィールドでは常にローカル日付/時間が参照され、オフセットやゾーンは無視されます。

        日付/時間に対して、「JULIAN_DAY.getFrom()」は深夜零時から次の深夜零時の直前まで同じ値を取ります。 「JULIAN_DAY.adjustInto()」を日付/時間に適用すると、1日のうちの時間部分はそのままになります。 「JULIAN_DAY.adjustInto()」と「JULIAN_DAY.getFrom()」は、ChronoField.EPOCH_DAYに変換できるTemporalオブジェクトにのみ適用されます。 他のタイプのオブジェクトではUnsupportedTemporalTypeExceptionがスローされます。

        解析時の解決フェーズでは、ユリウス日フィールドから日付を作成できます。 厳密モードスマート・モードでは、ユリウス日の値が有効値の範囲に対して検証されます。 非厳密モードでは検証は行われません。

        天文学的および科学的ノート

        標準的な天文学の定義では、時間を示すために端数を使用しています。ここでは、各日は正午から正午に数えられます。 たとえば、0の小数部は正午を表し、0.25の小数部は18:00を表し、0.5の小数部は真夜中を表し、0.75の小数部は06:00を表します。

        対照的に、この実装には小数部分はなく、真夜中から深夜までの日数がカウントされます。 この実装では、整数を使用し、1日は深夜零時に始まります。 ユリウス日を表す整数値は、その日付の正午における天文学的ユリウス日の値です。 これはつまり、天文学的ユリウス日を整数JDN = floor(JD + 0.5)に丸めたものです。

          | ISO date          |  Julian Day Number | Astronomical Julian Day |
          | 1970-01-01T00:00  |         2,440,588  |         2,440,587.5     |
          | 1970-01-01T06:00  |         2,440,588  |         2,440,587.75    |
          | 1970-01-01T12:00  |         2,440,588  |         2,440,588.0     |
          | 1970-01-01T18:00  |         2,440,588  |         2,440,588.25    |
          | 1970-01-02T00:00  |         2,440,589  |         2,440,588.5     |
          | 1970-01-02T06:00  |         2,440,589  |         2,440,588.75    |
          | 1970-01-02T12:00  |         2,440,589  |         2,440,589.0     |
         

        ユリウス日は世界標準時またはUTCに基づいていると見なされる場合がありますが、この実装では常にローカル日付のユリウス日が使用され、オフセットやタイムゾーンは無視されます。

      • MODIFIED_JULIAN_DAY

        public static final TemporalField MODIFIED_JULIAN_DAY
        修正ユリウス日を表すフィールド。

        これは整数ベースの修正ユリウス日です。 修正ユリウス日(MJD)は、日を連続してカウントする、よく知られたシステムです。 これは天文学的ユリウス日を基準にして、MJD = JD - 2400000.5と定義されます。 修正ユリウス日はそれぞれ深夜零時から深夜零時までです。 フィールドでは常にローカル日付/時間が参照され、オフセットやゾーンは無視されます。

        日付/時間に対して、「MODIFIED_JULIAN_DAY.getFrom()」は深夜零時から次の深夜零時の直前まで同じ値を取ります。 「MODIFIED_JULIAN_DAY.adjustInto()」を日付/時間に適用すると、1日のうちの時間部分はそのままになります。 「MODIFIED_JULIAN_DAY.adjustInto()」と「MODIFIED_JULIAN_DAY.getFrom()」は、ChronoField.EPOCH_DAYに変換できるTemporalオブジェクトにのみ適用されます。 他のタイプのオブジェクトではUnsupportedTemporalTypeExceptionがスローされます。

        この実装は、小数部をfloorに丸めた整数ベースの修正ユリウス日です。

        解析時の解決フェーズでは、修正ユリウス日フィールドから日付を作成できます。 厳密モードスマート・モードでは、修正ユリウス日の値が有効値の範囲に対して検証されます。 非厳密モードでは検証は行われません。

        天文学的および科学的ノート

          | ISO date          | Modified Julian Day |      Decimal MJD |
          | 1970-01-01T00:00  |             40,587  |       40,587.0   |
          | 1970-01-01T06:00  |             40,587  |       40,587.25  |
          | 1970-01-01T12:00  |             40,587  |       40,587.5   |
          | 1970-01-01T18:00  |             40,587  |       40,587.75  |
          | 1970-01-02T00:00  |             40,588  |       40,588.0   |
          | 1970-01-02T06:00  |             40,588  |       40,588.25  |
          | 1970-01-02T12:00  |             40,588  |       40,588.5   |
         
        修正ユリウス日は世界標準時またはUTCに基づいていると見なされる場合がありますが、この実装では常にローカル日付の修正ユリウス日が使用され、オフセットやタイムゾーンは無視されます。
      • RATA_DIE

        public static final TemporalField RATA_DIE
        Rata Dieフィールド。

        Rata Dieは、0001-01-01 (ISO)の開始を日1の深夜零時とし、完全な1日の何日分かをそこから連続してカウントします。 フィールドでは常にローカル日付/時間が参照され、オフセットやゾーンは無視されます。

        日付/時間に対して、「RATA_DIE.getFrom()」は深夜零時から次の深夜零時の直前まで同じ値を取ります。 「RATA_DIE.adjustInto()」を日付/時間に適用すると、1日のうちの時間部分はそのままになります。 「RATA_DIE.adjustInto()」と「RATA_DIE.getFrom()」は、ChronoField.EPOCH_DAYに変換できるTemporalオブジェクトにのみ適用されます。 他のタイプのオブジェクトではUnsupportedTemporalTypeExceptionがスローされます。

        解析時の解決フェーズでは、Rata Dieフィールドから日付を作成できます。 厳密モードスマート・モードでは、Rata Dieの値が有効値の範囲に対して検証されます。 非厳密モードでは検証は行われません。