Неожиданное поведение с григорианским календарем с датами до нашей эры
Мне бы хотелось:
- установить дату до 70 г. до н.э.
- затем отнимите 2 года
- Я ожидаю, что будет новая дата со значением: 72 г. до н.э.
Но я получаю 68 г. до н.э.
Вот мой код:
GregorianCalendar g1 = new GregorianCalendar();
g1.set(GregorianCalendar.YEAR, 70);
g1.set(GregorianCalendar.MONTH, 11);
g1.set(GregorianCalendar.DAY_OF_MONTH, 1);
g1.set(GregorianCalendar.ERA, GregorianCalendar.BC);
System.out.println(g1.toString());
g1.add(GregorianCalendar.YEAR,-2);
System.out.println(g1.toString());
Конечно, я мог бы просто изменить -2 на 2, и это будет работать, но, делая то же самое с датами в AD, это работает противоположным образом.
Как правильно вычесть годы из gregorianCalendar независимо от ERA?
Дополнительная информация о JDK и системе- я нахожусь на Android 5.1.1
Кажется, проблема только в Android?