Date currentDate = new Date(); System.out.println(currentDate); // 创建 Calendar 对象 Calendar calendar = Calendar.getInstance(); // 设置当前日期 calendar.setTime(currentDate); // 创建日期列表 List<String> dateList = new ArrayList<>(); // 循环往后推 12 个月 for (int i = 0; i < 12; i++) { // 获取当前日期的年份 int year = calendar.get(Calendar.YEAR); // 获取当前日期的月份 int month = calendar.get(Calendar.MONTH) + 2; // 拼接结果日期 String resultDate = year + "年" + month + "月"; // 将结果日期添加到列表中 dateList.add(resultDate); // 将日期往后推一个月 calendar.add(Calendar.MONTH, 1); } // 输出结果日期列表 for (String date : dateList) { System.out.println(date); }为啥会有13月
时间: 2024-02-14 16:14:48 浏览: 19
在代码中,月份是通过获取 Calendar 对象的 MONTH 字段来获取的,并且在拼接结果日期时月份加了 2。这里需要注意的是,Calendar 对象中 MONTH 字段的取值范围是 0-11,表示一年中的 12 个月,其中 0 表示一月,11 表示十二月。因此,在拼接结果日期时,应该将获取到的月份加 1,而不是加 2,这样才能得到正确的月份。将拼接结果日期的代码修改为以下代码即可:
```
// 获取当前日期的月份
int month = calendar.get(Calendar.MONTH) + 1;
// 拼接结果日期
String resultDate = year + "年" + month + "月";
```
这样就不会出现 13 月的情况了。
相关问题
Date startDate = calendar.getTime(); 怎么获得日期
`calendar.getTime()` 返回一个 `Date` 对象,表示该 `Calendar` 实例所代表的日期和时间。可以使用该对象获取日期。例如:
```java
// 获取当前日期
Calendar calendar = Calendar.getInstance();
Date currentDate = calendar.getTime();
System.out.println(currentDate); // 输出当前日期
// 获取指定日期
calendar.set(2021, Calendar.JANUARY, 1); // 设置为2021年1月1日
Date date = calendar.getTime();
System.out.println(date); // 输出2021-01-01
```
注意,`Calendar` 类的月份从0开始,即0表示1月。因此,上面的代码中`Calendar.JANUARY`表示1月份。
迭代日期 java.util.Calendar demo
`java.util.Calendar` 是 Java 标准库中用于操作日期的类,它可以用于迭代日期。以下是一个使用 `java.util.Calendar` 迭代日期的示例代码:
```java
import java.util.Calendar;
public class DateIteratorDemo {
public static void main(String[] args) {
Calendar startDate = Calendar.getInstance();
startDate.set(2021, Calendar.JANUARY, 1);
Calendar endDate = Calendar.getInstance();
endDate.set(2021, Calendar.JANUARY, 10);
Calendar currentDate = (Calendar) startDate.clone();
while (currentDate.compareTo(endDate) <= 0) {
System.out.println(currentDate.getTime());
currentDate.add(Calendar.DATE, 1);
}
}
}
```
在上面的代码中,我们首先使用 `Calendar.getInstance()` 方法获取当前日期的 `Calendar` 对象。然后,我们设置起始日期和结束日期,并使用 `clone()` 方法创建一个新的 `Calendar` 对象,使其初始值与起始日期相同。
接下来,我们使用 `compareTo()` 方法比较当前日期和结束日期的大小,如果当前日期小于等于结束日期,则输出当前日期,并将当前日期加一天。这里使用 `add()` 方法来增加日期,第一个参数是日期字段,例如 `Calendar.DATE` 表示日期,第二个参数是要增加的值,例如 `1` 表示增加一天。
希望这个示例可以帮助您使用 `java.util.Calendar` 迭代日期。