模块 java.base

类 JulianFields

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

public final class JulianFields extends Object
一组提供对儒略日的访问的日期字段。

儒略日是科学界常用的表示日期和时间的标准方式。它表示为整数天的十进制数,其中天数从中午开始。此类代表从午夜开始计算整日的儒略日的变体。

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

实现要求:
这是一个不可变且线程安全的类。
自从:
1.8
  • 字段详细信息

    • JULIAN_DAY

      public static final TemporalField  JULIAN_DAY
      儒略日字段。

      这是儒略日数的基于整数的版本。 Julian Day 是一个众所周知的系统,表示从第 0 天开始的整日计数,在 Julian 日历中定义为公元前 4713 年 1 月 1 日,公历 -4713-11-24。该字段将“JulianDay”作为“名称”,将“DAYS”作为“baseUnit”。该字段始终引用本地日期时间,忽略偏移量或区域。

      对于日期时间,“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 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   |
       

      Julian Days 有时被认为是指通用时间或 UTC,但此实现始终使用 Julian Day 数字作为本地日期,而不管偏移量或时区如何。

    • 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_DAY Temporal 对象。任何其他类型的对象都会抛出 UnsupportedTemporalTypeException

      此实现是 MJD 的整数版本,小数部分四舍五入到 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 从 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 值根据有效值范围进行验证。在 宽松模式 中没有验证发生。