要么我不理解方法getActualMaximum(int)
或字段 WEEK_OF_YEAR,要么涉及 Sun 错误(或所有三个)......有人可以向我解释为什么(至少在德语语言环境中......)以下代码:
Locale.setDefault( Locale.GERMAN );
Calendar c = Calendar.getInstance();
c.set( Calendar.YEAR, 2010 );
c.set( Calendar.MONTH, 0 );
c.set( Calendar.DAY_OF_MONTH, 1 );
System.out.println("max: "+c.getActualMaximum( Calendar.WEEK_OF_YEAR ));
System.out.println("actual: "+c.get( Calendar.WEEK_OF_YEAR ));
产生以下输出:
max: 52
actual: 53
这是Javadoc getActualMaximum(int)
:
在给定此日历的时间值的情况下,返回指定日历字段可以具有的最大值。例如,MONTH 字段的实际最大值在某些年份为 12,而在希伯来日历系统中其他年份为 13。
编辑
情节变厚了。在英语语言环境( -Duser.language=en -Duser.country=us
) 中,输出为:
max: 52
actual: 1
似乎指向它是德国语言环境的 Sun 错误?