B.7. Юлианские даты#

B.7. Юлианские даты

B.7. Юлианские даты

Система Юлианской даты - это метод нумерации дней. Она не связана с Юлианским календарем, хотя название ее похоже на название этого календаря и может вызывать путаницу. Система Юлианской даты была изобретена французским ученым Жозефом Жюстом Скалигером (1540-1609) и, вероятно, получила свое название от отца Скалигера, итальянского ученого Юлия Цезаря Скалигера (1484-1558).

В системе Юлианской даты каждый день имеет последовательный номер, начиная с JD 0 (который иногда называют Юлианской датой). JD 0 соответствует 1 января 4713 г. до н.э. в Юлианском календаре или 24 ноября 4714 г. до н.э. в Григорианском календаре. Подсчет Юлианской даты чаще всего используется астрономами для маркировки их ночных наблюдений, и поэтому дата идет с полудня UTC до следующего полудня UTC, а не с полуночи до полуночи: JD 0 обозначает 24 часа с полудня UTC 24 ноября 4714 г. до н.э. до полудня UTC 25 ноября 4714 г. до н.э.

Хотя Tantor SE поддерживает запись и вывод дат в формате юлианской даты (и также использует юлианские даты для некоторых внутренних вычислений даты и времени), он не соблюдает правило, согласно которому дни начинаются в полдень и заканчиваются в полдень. Tantor SE рассматривает юлианскую дату как период от полуночи до полуночи по местному времени, так же, как и обычную дату.

Однако, эта определение предоставляет способ получить астрономическое определение, когда вам это нужно: выполните арифметические операции в часовом поясе UTC+12. Например,

=> SELECT extract(julian from '2021-06-23 7:00:00-04'::timestamptz at time zone 'UTC+12');
           extract
------------------------------
 2459388.95833333333333333333
(1 row)
=> SELECT extract(julian from '2021-06-23 8:00:00-04'::timestamptz at time zone 'UTC+12');
               extract
--------------------------------------
 2459389.0000000000000000000000000000
(1 row)
=> SELECT extract(julian from date '2021-06-23');
 extract
---------
 2459389
(1 row)