2

这是一个 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, ]

4

2 回答 2

7

不是错误。查看源代码(java.text.DateFormatSymbols)的javadoc,它说:

月份字符串。例如:“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为:表示一年中第十三个月的字段。尽管 GregorianCalendar 不使用此值,但农历使用。

在此处阅读此类日历。

于 2013-09-24T13:22:53.433 回答
1

你可以参考这个页面:

http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/text/DateFormatSymbols.java

有些日历有 13 个月,如农历、中国闰年,这就是 java 保持这样的原因。

希望你的疑问是清楚的。

于 2013-09-24T13:26:52.737 回答