2013-09-24 57 views
2

這是一個jdk/jre錯誤?我在jdk7發佈但是從未收到反饋的情況下報告了這種情況,是否正常獲得了13個職位?空陣列位置獲得月

String[] months = DateFormatSymbols.getInstance().getMonths(); 
System.out.println(months.length + " " + Arrays.toString(months)); 

輸出: 13 [enero,febrero,馬索,四月,蛋黃醬,JUNIO,胡,阿岡斯托,septiembre,OCTUBRE,noviembre,DICIEMBRE,]

回答

5

不是一個錯誤。查看源代碼的javadoc( java.text.DateFormatSymbols),它說:

月份字符串。例如: 「一月」, 「二月」 等的 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不使用此值,但月曆可以。

閱讀here這樣的日曆。

+0

很好的答案!我認爲這是getMonths()的JavaDoc中的一個錯誤! – isnot2bad

+0

是的。沒有javadoc,但代碼doc。我在getMonths上看不到任何javadoc – Optional

+0

這個問題在[bug](http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4146173)中有報道,它可追溯到1998年,並在2004年更新。 – SrikanthLingala