朱利安日是科学界常用的表示日期和时间的标准方式。它被表示为一个十进制整数天数,其中天从中午开始计算。该类表示朱利安日的变体,它计算从午夜开始的整天数。
这些字段是相对于EPOCH_DAY
实现的。如果EPOCH_DAY
可用,则支持这些字段,并且可以查询和设置这些字段。这些字段适用于所有年表。
- 实现要求:
- 这是一个不可变且线程安全的类。
- 自版本:
- 1.8
-
Field Summary
Modifier and TypeFieldDescriptionstatic final TemporalField
朱利安日字段。static final TemporalField
修改的朱利安日字段。static final TemporalField
Rata Die字段。 -
Method Summary
-
Field Details
-
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_DAY
的Temporal
对象。对于任何其他类型的对象,将抛出一个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
修改的朱利安日字段。这是修改后的朱利安日数的基于整数的版本。修改后的朱利安日(MJD)是一个众所周知的系统,连续计数天数。它相对于天文朱利安日定义为
MJD = JD - 2400000.5
。每个修改后的朱利安日从午夜到午夜计数。该字段始终指的是本地日期时间,忽略偏移或时区。对于日期时间,'MODIFIED_JULIAN_DAY.getFrom()'假定从午夜开始到接近下一个午夜之前的相同值。当应用'MODIFIED_JULIAN_DAY.adjustInto()'到日期时间时,时间部分保持不变。'MODIFIED_JULIAN_DAY.adjustInto()'和'MODIFIED_JULIAN_DAY.getFrom()'仅适用于可以转换为
ChronoField.EPOCH_DAY
的Temporal
对象。对于任何其他类型的对象,将抛出一个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
Rata Die字段。Rata Die从0001-01-01(ISO)的午夜开始连续计数整天,第1天开始。该字段始终指的是本地日期时间,忽略偏移或时区。
对于日期时间,'RATA_DIE.getFrom()'假定从午夜开始到接近下一个午夜之前的相同值。当应用'RATA_DIE.adjustInto()'到日期时间时,时间部分保持不变。'RATA_DIE.adjustInto()'和'RATA_DIE.getFrom()'仅适用于可以转换为
ChronoField.EPOCH_DAY
的Temporal
对象。对于任何其他类型的对象,将抛出一个UnsupportedTemporalTypeException
。在解析阶段,可以从Rata Die字段创建一个日期。在严格模式和智能模式下,Rata Die值将根据有效值范围进行验证。在宽松模式下,不会进行验证。
-