Das julianische Datum – nicht mit dem Datum im julianischen Kalender zu verwechseln – ist eine in den Naturwissenschaften gebräuchliche Tageszählung und wird mit JD (engl. Julian Date) abgekürzt. Es gibt die Zeit in Tagen an, die seit dem 1. Januar −4712 (4713 v. Chr.) 12:00 Uhr vergangen ist. Dem Zeitpunkt Freitag, der 22. November 2024, 12:17:43 Uhr UT entspricht zum Beispiel das julianische Datum 2460637.0123.
Als fortlaufende Tageszählung ist das julianische Datum frei von Unregelmäßigkeiten wie Schalttagen, unterschiedlich langen Monaten usw., wie sie in den meisten Kalendern auftreten. Es wird daher vor allem in der Astronomie zur Beschreibung zeitabhängiger Größen verwendet, da mit ihm sehr leicht Zeitdifferenzen berechnet werden können.
Das julianische Datum wurde 1583 von dem französischen Philologen und Geschichtsschreiber Joseph Justus Scaliger vorgeschlagen. Der Name leitet sich möglicherweise von dem damals verwendeten julianischen Kalender ab. Andere Quellen berichten, Scaliger habe sein System nach seinem Vater Julius Caesar Scaliger benannt.
Die Zählung der Tage ist innerhalb eines Zeitraums von 7980 Jahren, der sogenannten Julianischen Periode, fortlaufend. Die Länge ergibt sich als kleinstes gemeinsames Vielfaches der Zykellängen der Indiktion (15 Jahre), des Mondzirkels (19 Jahre) und des Sonnenzyklus (28 Jahre). Das letzte Zusammenfallen der drei Zyklen (also das letzte Mal, dass alle drei Zyklen zugleich die Jahresnummer „1“ hatten) war im Jahr 4713 v. Chr.
Der britische Astronom John Herschel schlug 1849 in seinem Buch Outlines of Astronomy vor, das Scaliger’sche Schema zur Zeitmessung in der Astronomie zu verwenden. Dies beseitigte die Komplikationen, die bei der Verwendung verschiedener Kalender auftreten konnten. Er führte auch den gebrochenzahligen Anteil für die Uhrzeit in der westeuropäischen Zeitzone ein. Der Tageswechsel erfolgt um 12 Uhr mittags, damit während der nächtlichen Beobachtungen kein Datumswechsel stattfindet.
In der Astronomie wird das julianische Datum als kontinuierliche Zeitzählung verwendet, die jedem beliebigen Zeitpunkt eine eindeutige Kommazahl zuordnet, mit der Anzahl der verflossenen Tage als ganzzahligem Anteil und dem verflossenen Tagesbruchteil in den Nachkommastellen (das diskrete julianische Datum der Chronologie hingegen zählt nur ganze Tage, siehe unten). Im internationalen Sprachgebrauch wird das julianische Datum als „JD“ abgekürzt.
Die wissenschaftliche Zeitmessung benutzt mehrere verschiedene Zeitskalen nebeneinander, welche jeweils für bestimmte Zwecke besonders geeignet sind, z. B. Universal Time „UT“, Internationale Atomzeit „TAI“, Terrestrische Zeit „TT“, Baryzentrische Dynamische Zeit „TDB“ usw. Auf jeder dieser Zeitskalen kann in Form eines julianischen Datums eine kontinuierliche Zeitzählung eingeführt werden, wobei ein „Tag“ in der Regel 86.400 Sekunden der betreffenden Zeitskala entspricht. Da die einzelnen Zeitskalen sich voneinander unterscheiden, sind auch die betreffenden julianischen Daten für ein und dasselbe Ereignis verschieden. Es muss daher im Zweifelsfall angegeben werden, auf welcher Zeitskala das verwendete julianische Datum gezählt wird, z. B. „JD (UT1)“, „JD (TT)“ usw. Die Internationale Astronomische Union (IAU) empfiehlt die Verwendung der Terrestrischen Zeit als zugrunde liegender Zeitskala, mit einem aus 86.400 Sekunden (des Internationalen Einheitensystems) bestehenden Tag. Die oft anzutreffende Abkürzung „JDE“ bezeichnet ein nach Ephemeridenzeit gezähltes julianisches Datum, wird aber auch häufig für dessen Nachfolger „JD (TT)“ benutzt.
Wird ein julianisches Datum verwendet, das auf einer ungleichförmigen Zeitskala beruht (z. B. UTC), so ist bei der Berechnung von Zeitdifferenzen gegebenenfalls eine Korrektur nötig (im Beispiel UTC: Berücksichtigung von Schaltsekunden).
Das julianische Datum ist eine reine fortlaufende Tageszählung und weist keinerlei kalendarische Strukturen auf, wie z. B. eine Einteilung in Jahre, Monate usw. Es hat trotz der Namensähnlichkeit nichts mit dem julianischen Kalender zu tun. Auch das englische Julian Date leidet unter derselben Verwechslungsgefahr, weshalb z. B. Jean Meeus als Autor einschlägiger Werke stattdessen die Bezeichnung Julian Day Number oder einfach Julian Day benutzt. Im Sprachgebrauch der IAU ist jedoch unter Julian Day Number lediglich der ganzzahlige Teil des julianischen Datums zu verstehen und das volle Datum nach wie vor das Julian Date. Im Deutschen haben sich Bezeichnungen wie Julianische Tageszahl oder Julianische Tageszählung ebenfalls bisher nicht durchgesetzt.
Das astronomische julianische Datum kann nach dem folgenden Algorithmus aus einem im julianischen oder gregorianischen Kalender gegebenen Datum berechnet werden (das julianische Datum darf nicht negativ sein, diese Berechnung basiert auf der Umsetzung des gregorianischen Kalenders 1582, manche Staaten stellten ihren Kalender zu anderen Terminen um):
wenn Monat > 2 dann Y = Jahr, M = Monat
sonst Y = Jahr-1, M = Monat+12
D = Tag
H = Stunde/24 + Minute/1440 + Sekunde/86400
wenn TT.MM.YYYY >= 15.10.1582
dann gregorianischer Kalender: A = Int(Y/100), B = 2 - A + Int(A/4)
wenn TT.MM.YYYY <= 04.10.1582
dann julianischer Kalender: B = 0
sonst Fehler: Das Datum zwischen dem 04.10.1582 und dem 15.10.1582 existiert nicht.
Auf den 04.10.1582 (julianischer Kalender) folgte
unmittelbar der 15.10.1582 (gregorianischer Kalender).
JD = Int(365,25*(Y+4716)) + Int(30,6001*(M+1)) + D + H + B - 1524,5
Die Variablen Tag
, Monat
, Jahr
, Stunde
, Minute
und Sekunde
enthalten die Bestandteile des zu bearbeitenden Datums, das Ergebnis wird in JD
zurückgegeben. Die Funktion Int
schneidet die Nachkommastellen einer Zahl ab.
Da die meisten Programmiersprachen zur internen Darstellung von Datums- und Zeitwerten eine fortlaufende Nummerierung ab einem bestimmten Bezugspunkt in Tagen oder Millisekunden verwenden, kann oft durch einfache Subtraktion die Tagesdifferenz zu einem definierten Zeitpunkt bestimmt werden. Hierbei ist allerdings zu beachten dass die Untergrenze der Datumsvariablen nicht unterschritten wird (meist der 1. Januar 1900 oder der 1. Januar 1970).
Beispiel in JavaScript
var j2000 = new Date(); // Bezugspunkt ist der 1.1.2000 0:00 UT (entspricht JD 2451544,5)
j2000.setUTCFullYear(2000,0,1);
j2000.setUTCHours(0,0,0,0);
var datum = new Date();
datum.setUTCFullYear(jahr,monat-1,tag); // Monate müssen im Wertebereich 0...11 übergeben werden
datum.setUTCHours(stunde,minute,sekunde,millisek);
var jd = 2451544.5 + (datum-j2000)/86400000; // Zählung erfolgt in Millisekunden, 1 Tag = 86.400.000 ms
Wichtig ist die Übergabe als UTC-Wert, sonst berücksichtigt die Subtraktion eventuelle Zeitzonenunterschiede (Sommer/Winterzeit).
Beispiel in Microsoft Excel
=2451544,5+A1-DATUM(2000;1;1)
A1 enthält einen Datums- oder einen kombinierten Datums- und Zeitwert. Achtung: In Microsoft Excel gilt 1900 als Schaltjahr, gültige Werte werden erst ab dem 1. März 1900 geliefert. Ab diesem Wert wird die Schaltjahresregel jedoch richtig implementiert.
Umrechnung eines Datums im julianischen Format in ein lesbares Datumsformat in Microsoft Excel
=A1+DATUM(2000;1;1)-2451544,5
Int(365,25×(Y-(–4712)))
bzw. Int(365,25×(Y+4712))
. In dieser Formel wird durch den Nachkommateil des Faktors 365,25 automatisch der alle vier Jahre zusätzlich fällige Schalttag berücksichtigt. Sie erzeugt also für Y = –4712, –4711, –4710, –4709, –4708, …
die korrekte Zahlenfolge 0, 365, 730, 1095, 1461, …
Int
-Funktion für Januar und Februar des (ursprünglichen) Jahres –4712 allerdings negativ. Da die Int
-Funktionen verschiedener Programmiersprachen auf negative Argumente unterschiedlich reagieren, wird die Formel umformuliert, um negative Argumente zu vermeiden: Int(365,25·(Y+4716)) – 1461
.M = 3, 4, 5, …
ist also die Zahlenfolge 0, 31, 61, …
zu erzeugen; sie entspricht den kumulierten Summen der zweiten oben angegebenen Folge der Monatslängen. Die 28 in jener Folge wird jedoch nie benötigt, da während des letzten Monats des umnummerierten Jahres der letzte Monat nie vollständig vergangen ist und im darauf folgenden Monat die hier zu berechnende Tagessumme wieder mit 0 beginnt (während Y
um 1 erhöht wurde). Es genügt daher, die ebenfalls oben erwähnte streng periodische Folge zu erzeugen und einen passenden Ausschnitt daraus zu wählen. Dies geschieht durch die Formel Int(30,6001·(M+1))-122
, welche für M = 3 .. 14
die gewünschte Zahlenfolge liefert. Der Faktor 30,6001
stellt einen für die spätere Reduktion auf Ganzzahlen brauchbaren Annäherungswert auf die durchschnittliche, von Schaltjahren unbeeinflusste Monatslänge der Monate März bis Januar dar. Anstelle des Faktors 30,6001
könnte in mathematischer Hinsicht der Zahlenwert 30,6
verwendet werden. Rundungsfehler bei der numerischen Rechnung mit begrenzter Stellenzahl würden im Zusammenhang mit der Int
-Funktion jedoch in einigen Fällen zu fehlerhaften Ergebnissen führen. Dies wird durch die geringe Modifikation des Zahlenwerts verhindert (andere Möglichkeiten wären 30,61
, 30,601
etc). Der subtrahierte Wert 122
repräsentiert die gleichfalls von Schaltjahren unbeeinflusste Anzahl der Tage in den Monaten März bis Juni, die wegen der Wahl des Ausdrucks (M+1)
als Monatsfaktor abzuziehen sind. Ansonsten wäre eine kompliziertere Bestimmung der Monatsfaktoren erforderlich.D
das Datum des Tages, so ist die Anzahl der im betreffenden Monat bereits vollständig vergangenen Tage D-1
. Dazu ist der aus der Uhrzeit berechnete bereits vergangene Bruchteil H
des zu behandelnden Tages zu addieren. Ein halber Tag muss davon jedoch subtrahiert werden, da der Anfangszeitpunkt der julianischen Tageszählung nicht wie beim heutigen Kalender auf Mitternacht liegt, sondern erst auf 12 Uhr mittags: D - 1 + H - 0,5 = D + H - 1,5
.B
der Tage, um die sich julianischer und gregorianischer Kalender an jenem Datum unterscheiden. Der Unterschied begann am 15. Oktober 1582 mit B = -10
Tagen und wächst in allen nicht durch 400 teilbaren Hunderterjahren um -1
Tag, ist also insgesamt gegeben durch B = –10 –A + Int(A/4) + 12
bzw. B = 2 - A + Int(A/4)
, wobei A = Int(Y/100)
.31+29 = 60
Tage zu zählen. Der Februar −4712 war ein Schaltmonat.Int(365,25×(Y+4716)) – 1461 + Int(30,6001·(M+1)) – 122 + D + H – 1,5 + B + 60 = Int(365,25×(Y+4716)) + Int(30,6001·(M+1)) + D + H + B - 1524,5
.Kalenderdatum | Julianisches Datum |
---|---|
1. Januar 1, 0000 UT (julianisch) | 1.721.423,5000 |
27. Januar 333, 1200 UT (julianisch) | 1.842.713,0000 |
4. Oktober 1582, 2400 UT (julianisch) | 2.299.160,5000 |
15. Oktober 1582, 0000 UT (gregorianisch) | 2.299.160,5000 |
1. Januar 1900, 0000 UT (gregorianisch) | 2.415.020,5000 |
1. Januar 1990, 1200 UT (gregorianisch) | 2.447.893,0000 |
1. Januar 1990, 1800 UT (gregorianisch) | 2.447.893,2500 |
1. Januar 2000, 1200 UT (gregorianisch) | 2.451.545,0000 (Standardäquinoktium) |
14. Januar 2006, 1630 UT (gregorianisch) | 2.453.750,1875 |
25. März 2010, 1630 UT (gregorianisch) | 2.455.281,1875 |
22. November 2024, 12:17:43 UT (gregorianisch) | 2.460.637,0123 |
Das julianische bzw. gregorianische Kalenderdatum kann nach dem folgenden Algorithmus aus einem gegebenen julianischen Datum berechnet werden (das julianische Datum darf nicht negativ sein). Es wird angenommen, dass bis zum 4. Oktober 1582 der julianische Kalender und ab dem 15. Oktober 1582 der gregorianische Kalender zu verwenden ist.
Z = Int(JD + 0,5)
F = Frac(JD + 0,5)
wenn Z < 2299161 dann A = Z // Ergebnis julianisch
sonst g = Int((Z - 1867216,25) / 36524,25) // Ergebnis gregorianisch
A = Z + 1 + g - Int(g/4)
B = A + 1524
C = Int((B-122,1) / 365,25)
D = Int(365,25 * C)
E = Int((B-D) / 30,6001)
Tag = B - D - Int(30,6001*E) + F // Tag, inklusive Tagesbruchteil
wenn E<14 dann Monat = E - 1 // Monat
sonst Monat = E - 13
wenn Monat>2 dann Jahr = C - 4716 // Jahr
sonst Jahr = C - 4715
Die Variable JD
enthält das zu bearbeitende julianische Datum, die Variablen Tag
, Monat
, Jahr
die Bestandteile des resultierenden Kalenderdatums (der Tag auch den Tagesbruchteil). Die Funktion Int
schneidet die Nachkommastellen einer Zahl ab. Die Funktion Frac
liefert die Nachkommastellen einer Zahl.
Rundet man das julianische Datum auf eine ganze Zahl und bestimmt den Modulo 7, also den Rest einer Division durch 7, erhält man den Wochentag (mit Montag = 0 bis Sonntag = 6).
Das chronologische julianische Datum wird ebenfalls ab dem 1. Januar −4712 gezählt, aber nur in ganzzahligen Tagesschritten. Es entspricht dem astronomischen julianischen Datum für 12h mittags.
Der folgende Pseudocode berechnet aus einem Datum im gregorianischen Kalender das chronologische julianische Datum:
y = Jahr + (Monat − 2,85) / 12
A = Int(367 * y) − 1,75 * Int(y) + Tag
B = Int(A) − 0,75 * Int(y / 100)
JD = Int(B) + 1721117
Die Variablen Tag
, Monat
und Jahr
enthalten die Bestandteile des zu bearbeitenden Datums, die Variablen y
, A
und B
sind Hilfsgrößen der Berechnung und das Ergebnis wird in JD
zurückgegeben. Int
steht für das Abschneiden der Nachkommastellen.
Gregorianischer Kalender | Julianisches Datum |
---|---|
15. Oktober 1582 | 2299161 |
1. Januar 1583 | 2299239 |
1. Januar 1990 | 2447893 |
1. Januar 2000 | 2451545 |
22. November 2024 | 2460637 |