-1

我想了解为什么会发生这种情况,以及如何解决这个小问题。在提供日、月和年之后,我希望能够从 java 日历实例中获取周数。如果我做:

  Calendar cal=Calendar.getInstance();
       cal.set(Calendar.DAY_OF_MONTH, 11);
       cal.set(Calendar.MONTH,2);
       cal.set(Calendar.YEAR, 2013);

2013 年 2 月 11 日是第 7 周,但如果我调用,在上述日历实例中:

int weekNumber=cal.get(Calendar.week_of_year)

我得到第 11 周。知道为什么吗?我尝试设置语言环境但没有区别,问题是我只能从这三个字段中构建一个日历,因为我使用解析器从 xml 文件中读取它们并且它们的格式为 dd-mm-yyyy 没有更多信息

4

2 回答 2

0

中的月份字段Calendar从零开始。该值2对应于Calendar.MARCH。为避免混淆,最好使用Calendar常量。你可以使用:

cal.set(Calendar.MONTH, Calendar.FEBRUARY);
于 2013-04-01T20:46:14.143 回答
0

您使用了 March,因为 Java 月份Calendar是从 0 开始的:0 = 一月,1 = 二月,2 = 三月。

采用

cal.set(Calendar.MONTH,1);

或者

cal.set(Calendar.MONTH, Calendar.FEBRUARY);

如果你可以使用一个常数。否则,从您从解析器收到的月份中减去 1。

于 2013-04-01T20:47:05.947 回答