下一个函数获取一年中的第几周:
static public Integer getWeek(Date date) {
Calendar cal = Calendar.getInstance();
cal.setMinimalDaysInFirstWeek(1);
cal.setTime(date);
Integer week = cal.WEEK_OF_YEAR;
Integer month = cal.MONTH;
if ((week == 1) && (month == 12)) week = 52;
return week;
}
使用 date=02.01.2013 调用函数
我在调试中看到的:
- 日期 = 2013 年 SAMT 1 月 2 日星期三 00:00:00
- 第 3 周
- 月 = 2
我想得到:周=1,月=1。对吧?
我哪里错了?
JRE 1.6
非常感谢您的提前。
最佳答案
Calendar.WEEK_OF_YEAR
和 Calendar.MONTH
是日历用于查找字段的静态常量。你要
Integer week = cal.get(Calendar.WEEK_OF_YEAR);
Integer month = cal.get(Calendar.MONTH);
另外,请注意(我认为)一月被视为第 0 个月。
关于java - 不正确的week_of_year,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14145365/