Класс JulianFields
public final class JulianFields extends Object
Юлианский день — это стандартный способ представления даты и времени, широко используемый в научном сообществе. Он выражается десятичным числом целых дней, отсчёт которых начинается в полдень. Этот класс представляет варианты юлианских дней, в которых целые дни отсчитываются от полуночи.
Поля реализованы относительно EPOCH_DAY. Поля поддерживаются, их значения можно запрашивать и устанавливать, если доступно EPOCH_DAY. Поля работают со всеми календарными системами.
- Требования к реализации:
- Этот класс является неизменяемым и потокобезопасным.
- С версии:
- 1.8
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final TemporalField |
JULIAN_DAY |
Поле юлианского дня. |
static final TemporalField |
MODIFIED_JULIAN_DAY |
Поле модифицированного юлианского дня. |
static final TemporalField |
RATA_DIE |
Поле Rata Die. |
Краткое описание методов
Подробное описание полей
JULIAN_DAY
public static final TemporalField JULIAN_DAY
Это целочисленный вариант номера юлианского дня. Юлианский день — это известная система, представляющая количество целых дней с дня 0, который определён как 1 января 4713 года до н. э. по юлианскому календарю и -4713-11-24 по григорианскому календарю. Поле имеет значение 'JulianDay' в качестве 'name' и 'DAYS' в качестве 'baseUnit'. Поле всегда относится к местной дате и времени, игнорируя смещение или часовой пояс.
Для даты и времени 'JULIAN_DAY.getFrom()' возвращает одно и то же значение с полуночи до момента непосредственно перед следующей полуночью. При применении 'JULIAN_DAY.adjustInto()' к дате и времени часть, обозначающая время суток, остаётся неизменной. 'JULIAN_DAY.adjustInto()' и 'JULIAN_DAY.getFrom()' применимы только к объектам Temporal, которые можно преобразовать в ChronoField.EPOCH_DAY. Для объектов любого другого типа выбрасывается 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 |
Иногда считается, что юлианские дни подразумевают всемирное время или UTC, однако в этой реализации всегда используется номер юлианского дня для местной даты, независимо от смещения или часового пояса.
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()' применимы только к объектам Temporal, которые можно преобразовать в ChronoField.EPOCH_DAY. Для объектов любого другого типа выбрасывается UnsupportedTemporalTypeException.
В этой реализации используется целочисленный вариант MJD, дробная часть которого округляется вниз.
На этапе разрешения при разборе даты можно создать дату на основе поля модифицированного юлианского дня. В строгом режиме и интеллектуальном режиме значение модифицированного юлианского дня проверяется на соответствие допустимому диапазону. В нестрогом режиме проверка не выполняется.
Астрономические и научные примечания
| 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 непрерывно отсчитывает целые дни, начиная с дня 1, который начинается в полночь 0001-01-01 (ISO). Поле всегда относится к местной дате и времени, игнорируя смещение или часовой пояс.
Для даты и времени 'RATA_DIE.getFrom()' возвращает одно и то же значение с полуночи до момента непосредственно перед следующей полуночью. При применении 'RATA_DIE.adjustInto()' к дате и времени часть, обозначающая время суток, остаётся неизменной. 'RATA_DIE.adjustInto()' и 'RATA_DIE.getFrom()' применимы только к объектам Temporal, которые можно преобразовать в ChronoField.EPOCH_DAY. Для объектов любого другого типа выбрасывается UnsupportedTemporalTypeException.
На этапе разрешения при разборе даты можно создать дату на основе поля Rata Die. В строгом режиме и интеллектуальном режиме значение Rata Die проверяется на соответствие допустимому диапазону. В нестрогом режиме проверка не выполняется.
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/time/temporal/JulianFields.html