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

クラスJulianFields

java.lang.Object
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の値が有効値の範囲に対して検証されます。 非厳密モードでは検証は行われません。