Java 获取一个时间范围内的每个月的开始时间
时间: 2024-02-28 11:53:28 浏览: 93
要获取一个时间范围内的每个月的开始时间,可以使用 Calendar 类和 SimpleDateFormat 类。具体操作如下:
```java
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar startCalendar = Calendar.getInstance();
startCalendar.setTime(startDate);
Calendar endCalendar = Calendar.getInstance();
endCalendar.setTime(endDate);
List<String> monthBeginList = new ArrayList<>();
while(startCalendar.getTimeInMillis() <= endCalendar.getTimeInMillis()) {
monthBeginList.add(dateFormat.format(startCalendar.getTime()));
startCalendar.add(Calendar.MONTH, 1);
startCalendar.set(Calendar.DAY_OF_MONTH, 1);
}
for(String monthBegin : monthBeginList) {
System.out.println(monthBegin);
}
```
其中,`startDate` 和 `endDate` 分别代表时间范围的开始时间和结束时间。首先,将开始时间和结束时间设置到两个 Calendar 实例中。然后,使用一个 while 循环遍历每个月的开始时间,将其格式化为字符串,并存储到一个 List 中。在循环结束后,遍历 List 输出每个月的开始时间。在循环中,首先将当前日期设置为每个月的第一天,然后将 Calendar 的月份增加 1,即可得到下一个月的开始时间。
阅读全文