要么我不明白的方法getActualMaximum(int)
或字段WEEK_OF_YEAR,或有太阳错误(或所有三个)...有人可以向我解释为什么(至少在德语语言环境 ...)下面的代码:Calendar.getActualMaximum(Calendar.WEEK_OF_YEAR)怪异
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
这里是getActualMaximum(int)
的Javadoc:
返回给定此日历的时间值的指定日历字段可能具有的最大值 。 例如,MONTH字段的实际最大值 在某些 年是12,在其他年份是在希伯来语日历系统的 。
编辑
情节复杂。 在英语语言环境(-Duser.language=en -Duser.country=us
)输出为:
max: 52
actual: 1
似乎指向它是一个Sun错误德语语言环境?
天从1开始,但几个月从零开始? – 2010-01-12 08:48:29
呃是的。信不信由你。 :) – Epaga 2010-01-12 08:51:15