Java 如何使用GregorianCalendar设置BCE年度

Java 如何使用GregorianCalendar设置BCE年度,java,date,gregorian-calendar,Java,Date,Gregorian Calendar,我的任务是将日期从一个日历系统转换为另一个日历系统 GregoriaCalendar的文档似乎建议您可以使用BCE年份的日期,但我不知道如何使用。如果我只是将年份设为负值,即 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”,这显然是不正确的。

我的任务是将日期从一个日历系统转换为另一个日历系统

GregoriaCalendar的文档似乎建议您可以使用BCE年份的日期,但我不知道如何使用。如果我只是将年份设为负值,即

 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”,这显然是不正确的。

您需要将ERA设置为BC(BC是打开的静态字段)

标准(公历)有两个纪元,公元前和公元前

e、 g


@hollaburoo-什么是正确的使用方法?请记住,纪元(公元前或公元后)通常不会以默认的日期时间格式显示,并且没有零年。
calendar.set(Calendar.ERA, GregorianCalendar.BC);