Java Top.

使用Spring 5和Spring Boot 2开始,通过学习春天课程:

>>查看课程

1.概述

在Java 8中引入的新时间API使得可以在不使用外部库的情况下处理日期和时间。

在这篇简短的教程中,我们将看看在不同版本的Java中,两个日期之间的所有日期如何变得更容易。

2.使用Java 7

在Java 7中,一种计算它正在使用的方式日历实例,运行循环并使用添加方法在每次迭代中添加1天Calendar.date.现场单元达到结束日期。

这是演示它的代码 - 使用日历实例:

公共静态列表<日期> getdatesbetweenusingjava7(日期startdate,date enddate){list  datesinrange = new arraylist <>();日历日历= New GregorianCalendar();Calendar.settime(Startdate);Calendar Endcalendar = New GregorianCalendar();Endcalendar.settime(Enddate);while(calendar.before(endcalendar)){日期结果= calendar.gettime();datesinrange.add(结果);calendar.add(calendar.date,1);}返回datesinrange;}

3.使用Java 8

在Java 8中,我们现在可以创建一个连续的无限溪流日期并只采取相关部分。很遗憾,没有办法终止无限的溪流当谓词匹配时- 这就是为什么我们需要计算两天之间的天数,然后简单地计算限制()溪流:

公共静态列表 getdatebetweenusingjava8(localdate startdate,localdate enddate){long numofdaysbetween = chronounit.days.between(Startdate,Enddate);返回IntStream.Iterate(0,i  - > i + 1).limit(numofdaysbetween).maptoobj(i  - > startdate.plusdays(i)).collect(收集器.Tolist());}

请注意,首先,我们可以使用使用的日期之间的天数之间功能 - 与之相关常数Chronounit.枚举。

然后我们创造一个溪流表示自开始日期以来的天数的整数。在下一步中,我们将整数转换为localDate.物体使用的Plusdays()API。

最后,我们将所有内容收集到列表实例中。

4.使用Java 9

最后,Java 9带来了专用的计算方法:

公共静态列表 getdatesbetweenusingjava9(localdate startdate,localdate enddate){return startdate.datesuntil(enddate).collect(polormors.tolist());}

我们可以使用专用的单个方法调用来获得两个日期之间的日期datesuntilA.的方法localDate.班级。这datesuntill.返回顺序排列溪流从日期对象开始的日期,其方法被调用为作为方法参数给出的日期。

结论

在这个快速的文章中,我们看看我们如何使用不同版本的Java获得两个日期之间的所有日期。

我们讨论了Java 8释放中推出的时间API如何更轻松地在与日期文字和Java 9中运行操作,可以通过呼叫来完成datesuntil。

并且,一如既往,可以找到代码片段在github上

Java底部

使用Spring 5和Spring Boot 2开始,通过学习春天课程:

>>查看课程
评论在本文上关闭!