1 import java.time.LocalDate; 2 import java.time.LocalDateTime; 3 import java.time.LocalTime; 4 import java.time.format.DateTimeFormatter; 5 import java.time.temporal.ChronoUnit; 6 import java.time.temporal.TemporalAdjusters; 7 import java.util.ArrayList; 8 import java.util.List; 9 10 public class LocalDateTest { 11 12 public static void main(String[] args) throws Exception { 13 Integer defaultYear = 2025; 14 //获取一年开始日期 15 LocalDate startDate = LocalDate.of(defaultYear, 1, 1); 16 //获取一年结束日期 17 LocalDate endDate = LocalDate.of(defaultYear, 12, 31); 18 19 List<LocalDate> manths = getMonthsBetween(startDate, endDate); 20 DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); 21 DateTimeFormatter pattern2 = DateTimeFormatter.ofPattern("yyyy.MM"); 22 for (LocalDate localDate : manths) { 23 //System.out.println(localDate.getMonthValue()); 24 LocalDate firstDayOfMonth = localDate.withDayOfMonth(1); 25 LocalDate lastDayOfMonth = localDate.with(TemporalAdjusters.lastDayOfMonth()); 26 // 获取当前月份的开始时间和结束时间(假设开始时间为00:00:00,结束时间为23:59:59) 27 LocalDateTime startOfMonth = LocalDateTime.of(firstDayOfMonth, LocalTime.MIDNIGHT); 28 LocalDateTime endOfMonth = LocalDateTime.of(lastDayOfMonth, LocalTime.MAX); 29 String s2 = firstDayOfMonth.format(pattern2); 30 String s = startOfMonth.format(pattern); 31 String e = endOfMonth.format(pattern); 32 33 System.out.println(s2 + " " + s + "~" + e); 34 35 } 36 37 } 38 39 40 public static List<LocalDate> getMonthsBetween(LocalDate start, LocalDate end) { 41 List<LocalDate> months = new ArrayList<>(); 42 LocalDate current = start.withDayOfMonth(1); 43 while (current.isBefore(end.plusDays(1)) || current.isEqual(end)) { 44 months.add(current); 45 current = current.plus(1, ChronoUnit.MONTHS); 46 } 47 return months; 48 } 49 50 }
2025.01 2025-01-01 00:00:00~2025-01-31 23:59:59 2025.02 2025-02-01 00:00:00~2025-02-28 23:59:59 2025.03 2025-03-01 00:00:00~2025-03-31 23:59:59 2025.04 2025-04-01 00:00:00~2025-04-30 23:59:59 2025.05 2025-05-01 00:00:00~2025-05-31 23:59:59 2025.06 2025-06-01 00:00:00~2025-06-30 23:59:59 2025.07 2025-07-01 00:00:00~2025-07-31 23:59:59 2025.08 2025-08-01 00:00:00~2025-08-31 23:59:59 2025.09 2025-09-01 00:00:00~2025-09-30 23:59:59 2025.10 2025-10-01 00:00:00~2025-10-31 23:59:59 2025.11 2025-11-01 00:00:00~2025-11-30 23:59:59 2025.12 2025-12-01 00:00:00~2025-12-31 23:59:59
标签:00,01,59,获取,23,2025,日期,LocalDate From: https://www.cnblogs.com/luodengxiong/p/18677632