java - 不正确的week_of_year

标签 java

下一个函数获取一年中的第几周:

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 调用函数

我在调试中看到的:

  1. 日期 = 2013 年 SAMT 1 月 2 日星期三 00:00:00
  2. 第 3 周
  3. 月 = 2

我想得到:周=1,月=1。对吧?

我哪里错了?

JRE 1.6

非常感谢您的提前。

最佳答案

Calendar.WEEK_OF_YEARCalendar.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/

相关文章:

java - 无法调用派生内部类的实例方法

java - 如何使用java创建这个JSONObject?

java - 使用 pdfcopy 创建 pdf 时返回空文档

java - 将按钮添加到框架

Java 准备语句 nullPointerException

JavaFX - 带有 2 个输入字段的对话框?

java - Android toast 消息(使用单选按钮识别正确答案)

java - 如何在 Solr 的 CSV 响应中打印您自己的列名称?

java - 当 JLabel 包含 HTML 时,BoxLayout 不遵守胶水

java - tomcat 6.0.24异常: Could not load com. mysql.jdbc.SQLError