如何使用 GregorianCalendar 设置 BCE 年份

hol*_*roo 4 java date gregorian-calendar

我有一项将日期从一种日历系统转换为另一种日历系统的作业。

GregorianCalendar 的文档似乎建议您可以使用 BCE 年份的日期,但我不知道如何使用。如果我简单地将年份设为负数,即

 GregorianCalendar cal = new GregorianCalendar(-20, 1, 2, 3, 0, 0);
 System.out.println(cal.getTime.toString());
Run Code Online (Sandbox Code Playgroud)

它打印出“Sun Feb 02 03:00:00 GMT-05:00 21”,这显然是不正确的。

Mic*_*lis 5

您需要将 ERA 设置为 BC(BC 是GregorianCalendar上的静态字段)。

标准(公历)历法有 2 个纪元,BC 和 AD。

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

例如

calendar.set(Calendar.ERA, GregorianCalendar.BC);
Run Code Online (Sandbox Code Playgroud)