java 将日期段按自然月分割
时间: 2024-01-21 20:19:06 浏览: 140
可以使用 Java 中的 Calendar 和 SimpleDateFormat 类来实现将日期段按自然月分割的功能。
以下是一个示例代码:
```java
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
public class DateSplitByMonth {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar start = Calendar.getInstance();
Calendar end = Calendar.getInstance();
try {
// 设置开始日期
start.setTime(sdf.parse("2021-01-01"));
// 设置结束日期
end.setTime(sdf.parse("2021-06-30"));
} catch (Exception e) {
e.printStackTrace();
}
List<String> monthList = new ArrayList<>();
while (start.before(end)) {
// 获取当前日期所在的年份和月份
int year = start.get(Calendar.YEAR);
int month = start.get(Calendar.MONTH) + 1;
// 拼接年份和月份,加入月份列表中
monthList.add(year + "-" + (month < 10 ? "0" + month : month));
// 将日期加上一个月
start.add(Calendar.MONTH, 1);
}
System.out.println(monthList);
}
}
```
该代码将开始日期设置为 2021 年 1 月 1 日,结束日期设置为 2021 年 6 月 30 日,然后将日期段按自然月分割,将每个自然月的年份和月份拼接成一个字符串(例如:2021-01),并加入一个月份列表中。最终输出的结果为:
```
[2021-01, 2021-02, 2021-03, 2021-04, 2021-05]
```
你可以根据自己的需求调整代码中的日期范围和日期格式。
阅读全文