首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java calendar.month返回周日的月份

Java calendar.month返回周日的月份
EN

Stack Overflow用户
提问于 2018-06-07 03:43:37
回答 1查看 69关注 0票数 0

我有一个SQL数据库,其中有一个year和week字段,我需要获取月份数据。当我尝试检索它时,它会给我下一个月,即当周在月底时。例如,从2019.01.28-2019.02.01周,我得到月份数字2。

有什么问题吗?

(附加信息:我也尝试过其他day_of_week )

代码如下:

rs = stmt.executeQuery("SELECT * FROM " + sqlDatabase.beosztas() + " WHERE id = \'" + id + "\'");`
        ResultSetMetaData md = rs.getMetaData();
        while (rs.next()) {
            year = rs.getInt(2);
            week = rs.getInt(3);
            cal.set(Calendar.YEAR, year);
            cal.set(Calendar.WEEK_OF_YEAR, week);
            cal.set(Calendar.DAY_OF_WEEK, 1);
            if (count == 0) {
                month = cal.get(Calendar.MONTH) + 1;
            }
            count++;
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-07 03:51:56

Calendar.DAY_OF_WEEK从周日开始,而不是周一。所以在你的例子中,它返回周日的月份是很正常的。如果您想将日期设置为星期一,只需使用:

cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

在使用日历时,您应该小心。Calendar.MONTH是从0开始的索引,Calendar.DAY_OF_WEEK是从1开始的索引。

因此,您应该使用Calendar中定义的常量,如Calendar.MONDAY或Calendar.JUNE,以确保使用正确的月份或日期,而不会出错。

为了友好地使用Calendar,常量是更好的。想要定义一个2018-02-18的日期:

Calendar cal = Calendar.getInstance();
cal.set(2018, 2, 18); // wrong. here the date will be 2018-03-18
cal.set(2018, Calendar.FEBRUARY, 18); // correct
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50728357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档