如何使用 GregorianCalendar 设置公元前年份
-
25-09-2019 - |
题
我有一项作业,将日期从一种日历系统转换为另一种日历系统。
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”,这显然不正确。
解决方案
您需要将 ERA 设置为 BC(BC 是静态字段) 公历).
标准(公历)日历有 2 个纪元:公元前和公元。
http://java.sun.com/j2se/1.4.2/docs/api/java/util/GregorianCalendar.html
例如
calendar.set(Calendar.ERA, GregorianCalendar.BC);
其他提示
可以找到这方面的文档: http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html#ERA
表明 Calendar.ERA
以及两者如何 GregorianCalendar.AD
和 GregorianCalendar.BC
可以使用
不隶属于 StackOverflow