gpt4 book ai didi

java - Java Calendar 的 setMonth 方法是否有错误?

转载 作者:搜寻专家 更新时间:2023-10-31 19:54:15 25 4
gpt4 key购买 nike

我有如下小代码。我预计结果应该是 7,但它打印了 6。如果我取消注释 tmp.get(Calendar.MONTH) 行,它运行正常(打印 7)。

请告诉我原因。我在 MacOS 中使用 JDK 1.7.0_25。

public static void main(String[] args) {
Calendar tmp = Calendar.getInstance();
tmp.set(Calendar.DAY_OF_MONTH, 4);
tmp.set(Calendar.MONTH, Calendar.AUGUST);
//tmp.get(Calendar.MONTH);
tmp.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println(tmp.get(Calendar.MONTH));
}

截图:
评论码:http://gyazo.com/4c099b1b2b90d72d1954b98b134e4ac3
取消注释代码:http://gyazo.com/fe368745da168646140ca9f3a60d2021

最佳答案

因为月份索引从索引 0 开始。在获取月份时添加 +1。它是基于 c 的结构复制到 java 中。它的索引为 0 到 11。

而且我认为月份中的某天不正确。注释并运行它会正确显示。(tmp.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);)

    tmp.set(Calendar.DAY_OF_MONTH, 4);
tmp.set(Calendar.MONTH, Calendar.AUGUST);
//tmp.get(Calendar.MONTH);
//tmp.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println(tmp.get(Calendar.MONTH));

默认情况下,年份为 2015 年,8 月 4 日是星期二而不是星期一

关于java - Java Calendar 的 setMonth 方法是否有错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31219411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com