这是一个jdk / jre错误吗?当jdk7发布但我从未收到过反馈时,我报告了这一点,是否正常得到13个阵列?
String[] months = DateFormatSymbols.getInstance().getMonths();
System.out.println(months.length + " " + Arrays.toString(months));
输出: 13 [enero,febrero,marzo,abril,mayo,junio,julio,agosto,septiembre,octubre,noviembre,diciembre,]
答案 0 :(得分:7)
不是错误。看一下源代码的javadoc( java.text.DateFormatSymbols),它说:
月份字符串。例如:“January”,“February”等。数组 13个字符串(一些日历有13个月),索引 Calendar.JANUARY,Calendar.FEBRUARY等。
String months[] = null;
此外,getWeekdays()
方法返回8个值,依此类推。
public final static int JANUARY = 0;
public final static int FEBRUARY = 1;
public final static int MARCH = 2;
public final static int APRIL = 3;
public final static int MAY = 4;
public final static int JUNE = 5;
public final static int JULY = 6;
public final static int AUGUST = 7;
public final static int SEPTEMBER = 8;
public final static int OCTOBER = 9;
public final static int NOVEMBER = 10;
public final static int DECEMBER = 11;
public final static int UNDECIMBER = 12;
API将UNDECIMBER
描述为:字段,表示一年中的第13个月。虽然GregorianCalendar不使用此值,但是月历会这样做。
阅读here了解此类日历。
答案 1 :(得分:1)
您可以参考此页面:
有些日历有13个月像农历,中国闰年,这就是为什么java保持这样的原因。
希望你的怀疑是明确的。