Как установить год до н.э. с помощью GregorianCalendar - PullRequest
2 голосов
/ 03 февраля 2010

У меня есть назначение, которое конвертирует даты из одной календарной системы в другую.

Документация для 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', что явно неверно.

Ответы [ 2 ]

4 голосов
/ 03 февраля 2010

Необходимо установить ERA в BC (BC - это статическое поле на GregorianCalendar ).

Стандартный (григорианский) календарь имеет 2 эры, до нашей эры и нашей эры.

http://java.sun.com/j2se/1.4.2/docs/api/java/util/GregorianCalendar.html

1012 *, например *

calendar.set(Calendar.ERA, GregorianCalendar.BC);
1 голос
/ 03 февраля 2010

Документация для этого может быть найдена: http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html#ERA

Показывает Calendar.ERA и как можно использовать GregorianCalendar.AD и GregorianCalendar.BC

...