У меня есть назначение, которое конвертирует даты из одной календарной системы в другую.
Документация для GregorianCalendar, кажется, предполагает, что вы можете использовать даты с годами до н.э., но я понятия не имею, как. Если я просто сделаю год отрицательным, то есть
GregorianCalendar cal = new GregorianCalendar(-20, 1, 2, 3, 0, 0);
System.out.println(cal.getTime.toString());
Он печатает 'Sun Feb 02 03:00:00 GMT-05: 00 21', что явно неверно.