Module java.base

Class JulianFields

java.lang.Object
java.time.temporal.JulianFields

public final class JulianFields extends Object
一组日期字段,提供对朱利安日的访问。

朱利安日是科学界常用的表示日期和时间的标准方式。它被表示为一个十进制整数天数,其中天从中午开始计算。该类表示朱利安日的变体,它计算从午夜开始的整天数。

这些字段是相对于EPOCH_DAY实现的。如果EPOCH_DAY可用,则支持这些字段,并且可以查询和设置这些字段。这些字段适用于所有年表。

实现要求:
这是一个不可变且线程安全的类。
自版本:
1.8
  • Field Details

    • JULIAN_DAY

      public static final TemporalField JULIAN_DAY
      朱利安日字段。

      这是朱利安日数的基于整数的版本。朱利安日是一个众所周知的系统,表示自公元前4713年1月1日(朱利安历)和公元前4713年11月24日格里高利历以来的整天数。该字段的'name'为'JulianDay','baseUnit'为'DAYS'。该字段始终指的是本地日期时间,忽略偏移或时区。

      对于日期时间,'JULIAN_DAY.getFrom()'假定从午夜开始到接近下一个午夜之前的相同值。当应用'JULIAN_DAY.adjustInto()'到日期时间时,时间部分保持不变。'JULIAN_DAY.adjustInto()'和'JULIAN_DAY.getFrom()'仅适用于可以转换为ChronoField.EPOCH_DAYTemporal对象。对于任何其他类型的对象,将抛出一个UnsupportedTemporalTypeException

      在解析阶段,可以从朱利安日字段创建一个日期。在严格模式智能模式下,朱利安日值将根据有效值范围进行验证。在宽松模式下,不会进行验证。

      天文和科学注释

      标准的天文定义使用分数表示时间,其中每天从中午到中午计数。例如,分数0表示中午,分数0.25表示18:00,分数0.5表示午夜,分数0.75表示06:00。

      相比之下,这个实现没有小数部分,从午夜到午夜计数天数。这个实现使用一个整数和从午夜开始的天数。朱利安日数的整数值是所讨论日期的中午的天文朱利安日值。这相当于天文朱利安日,四舍五入为整数JDN = floor(JD + 0.5)

        | ISO日期          |  朱利安日数 | 天文朱利安日数 |
        | 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     |
       

      朱利安日有时被认为暗示世界时或协调世界时,但这个实现始终使用本地日期的朱利安日数,而不考虑偏移或时区。

    • MODIFIED_JULIAN_DAY

      public static final TemporalField MODIFIED_JULIAN_DAY
      修改的朱利安日字段。

      这是修改后的朱利安日数的基于整数的版本。修改后的朱利安日(MJD)是一个众所周知的系统,连续计数天数。它相对于天文朱利安日定义为MJD = JD - 2400000.5。每个修改后的朱利安日从午夜到午夜计数。该字段始终指的是本地日期时间,忽略偏移或时区。

      对于日期时间,'MODIFIED_JULIAN_DAY.getFrom()'假定从午夜开始到接近下一个午夜之前的相同值。当应用'MODIFIED_JULIAN_DAY.adjustInto()'到日期时间时,时间部分保持不变。'MODIFIED_JULIAN_DAY.adjustInto()'和'MODIFIED_JULIAN_DAY.getFrom()'仅适用于可以转换为ChronoField.EPOCH_DAYTemporal对象。对于任何其他类型的对象,将抛出一个UnsupportedTemporalTypeException

      这个实现是MJD的整数版本,小数部分四舍五入为整数。

      在解析阶段,可以从修改后的朱利安日字段创建一个日期。在严格模式智能模式下,修改后的朱利安日值将根据有效值范围进行验证。在宽松模式下,不会进行验证。

      天文和科学注释

        | ISO日期          | 修改后的朱利安日 |      小数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   |
       
      修改后的朱利安日有时被认为暗示世界时或协调世界时,但这个实现始终使用本地日期的修改后的朱利安日,而不考虑偏移或时区。
    • RATA_DIE

      public static final TemporalField RATA_DIE
      Rata Die字段。

      Rata Die从0001-01-01(ISO)的午夜开始连续计数整天,第1天开始。该字段始终指的是本地日期时间,忽略偏移或时区。

      对于日期时间,'RATA_DIE.getFrom()'假定从午夜开始到接近下一个午夜之前的相同值。当应用'RATA_DIE.adjustInto()'到日期时间时,时间部分保持不变。'RATA_DIE.adjustInto()'和'RATA_DIE.getFrom()'仅适用于可以转换为ChronoField.EPOCH_DAYTemporal对象。对于任何其他类型的对象,将抛出一个UnsupportedTemporalTypeException

      在解析阶段,可以从Rata Die字段创建一个日期。在严格模式智能模式下,Rata Die值将根据有效值范围进行验证。在宽松模式下,不会进行验证。