Datentypen Calender/Gregorianisch/Julianisch/JDN Konvertierung

trottelinchen

Neues Mitglied
hi *,
ich habe eine Liste von Julian Day Numbers aus dem Mittelalter und der Antike, diese möchte ich in den Julianischen & Gregorianischen Kalender konvertieren und ausgeben. Die Konvertierung in den Gregorianischen Kalender habe ich bereits hinbekommen:
Java:
long jdn = 0;
LocalDate date = LocalDate.MIN.with(JulianFields.JULIAN_DAY, jdn);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMMM yyyy G");
String formattedStringGregorian = date.format(formatter);
System.out.println("Gregorianisch: " + formattedStringGregorian);
Das gibt als Resultat '24 November 4714 BC', was laut https://en.wikipedia.org/wiki/Julian_day auch korrekt ist.

Wie konvertiere ich aber nach (proleptisch) Julianisch? Eigentlich müsste man das Gregorianische Datum doch nach Julianisch umwandeln können, vielleicht so:
Java:
GregorianCalendar dateGregorianCalendar = new GregorianCalendar();
dateGregorianCalendar = GregorianCalendar.from(date.atStartOfDay(ZoneId.systemDefault()));
dateGregorianCalendar.setGregorianChange(new Date(Long.MIN_VALUE));
System.out.println("Julianisch: " + dateGregorianCalendar.getGregorianChange());
Als Ergebnis kommt aber das leicht irritierende 'Sun Dec 02 17:47:04 CET 292269055'.
Was läuft da falsch, bzw. wie konvertiert man Julian Day Number korrekt in den julianischen Kalender?
Vielen Dank für jeden Hinweis!
 

Tobse

Top Contributor
Du verwendest die methode #setGregorianChange() falsch:

Javadoc #setGregorianChange() hat gesagt.:
To obtain a pure Julian calendar, set the change date to Date(Long.MAX_VALUE). To obtain a pure Gregorian calendar, set the change date to Date(Long.MIN_VALUE).

Wenn du also nach Julianisch rechnen willst, musst du Long.MAX_VALUE benutzen; du benutzt aber Long.MIN_VALUE
 

trottelinchen

Neues Mitglied
danke für den Hinweis auf MIN/MAX, aber mit MAX_VALUE erhalte ich als Ergebnis:
Sun Aug 17 08:12:55 CET 292278994 was nun auch etwas falsch aussieht...
 

Ähnliche Java Themen

Neue Themen


Oben