主页 > 创业  > 

java根据时间区间计算区间中都包含那几个月

java根据时间区间计算区间中都包含那几个月

在一些需要统计类的需求中可能会计算同比/环比数据,往往我们拿到的并不是每个月的准确时间,需要自行计算,一点一点计算还是挺麻烦的,因此搞一个工具类出来

工具类  public static void main(String[] args) { //为了准确,这里使用的时间毫秒值 long beginTime = 1577836800000L; long endTime = 1700994771650L; // 将毫秒值转换为Instant对象 Instant startInstant = Instant.ofEpochMilli(beginTime); Instant endInstant = Instant.ofEpochMilli(endTime); // 转换为LocalDate对象 LocalDate startDate = startInstant.atZone(ZoneId.systemDefault()).toLocalDate(); LocalDate endDate = endInstant.atZone(ZoneId.systemDefault()).toLocalDate(); // 计算每个月的时间区间 LocalDate currentMonthStart = startDate.withDayOfMonth(1); while (!currentMonthStart.isAfter(endDate)) { LocalDate currentMonthEnd = currentMonthStart.plusMonths(1).minusDays(1); // 处理结束时间在下个月的情况 if (currentMonthEnd.isAfter(endDate)) { currentMonthEnd = endDate; } DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); System.out.println("开始时间:" + currentMonthStart.format(formatter) + " 结束时间:" + currentMonthEnd.format(formatter)); // 移动到下个月的开始 currentMonthStart = currentMonthStart.plusMonths(1); } } 测试结果

标签:

java根据时间区间计算区间中都包含那几个月由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“java根据时间区间计算区间中都包含那几个月