两个日期之间的所有日期输出错误

时间:2019-08-16 01:44:10

标签: java spring spring-boot java-stream localdate

这是一种打印两个日期之间所有日期的方法。 但是随着年份的流逝,12月的部分将再增加一年。 有一个错误。

这是韩国约会。 对不起翻译。

String startDate = "2019-12-23";
String endDate = "2020-01-01";

LocalDate start = LocalDate.parse(startDate);
LocalDate end = LocalDate.parse(endDate).plusDays(1);
List<String> dates = Stream.iterate(start, date -> date.plusDays(1))
    .limit(ChronoUnit.DAYS.between(start, end))
    .map(date -> date.format(DateTimeFormatter.ofPattern("YYYYMMdd")))
    .collect(Collectors.toList());


System.err.println(dates);

错误:[20191223、20191224、20191225、20191226、20191227、20191228, 20201229、20201230、20201231 ,20200101]

1 个答案:

答案 0 :(得分:1)

使用BASIC_ISO_DATE,它将解决您的问题

List<String> dates = Stream.iterate(start, date -> date.plusDays(1))
                .limit(ChronoUnit.DAYS.between(start, end))
                .map(date -> date.format(DateTimeFormatter.BASIC_ISO_DATE))
                .collect(Collectors.toList());


System.err.println(dates);