java根据月份拿到第一天到最后一天日期所有日期
时间: 2024-12-21 11:22:55 浏览: 7
在Java中,你可以使用`java.time`包下的`LocalDate`类以及`java.util.stream.Stream`来生成指定月份从第一天到最后一天的所有日期。下面是一个示例:
```java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
String month = "04"; // 例如四月,需要替换为你想要的月份(两位数字)
int year = 2023; // 需要设定一个年份
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM");
LocalDate startOfMonth = LocalDate.of(year, Integer.parseInt(month), 1);
LocalDate endOfMonth = startOfMonth.plusMonths(1).minusDays(1);
List<LocalDate> dates = Stream.iterate(startOfMonth, date -> date.plusDays(1))
.limit(ChronoUnit.DAYS.between(startOfMonth, endOfMonth) + 1)
.collect(Collectors.toList());
System.out.println(dates);
}
}
```
这段代码首先创建了该年的指定月份的第一天(`startOfMonth`),然后计算出该月有多少天(`endOfMonth`)。接着使用流(Stream)迭代每一天,直到达到月底。最后将结果存储在一个`List<LocalDate>`中。
如果你需要这个功能作为函数供他人使用,可以封装成一个方法:
```java
public static List<LocalDate> getDatesForMonth(int year, String monthStr) {
// ... (上述代码内容)
}
```
阅读全文