猿问

如何在java中获得两个日期之间的日期列表 JAVA

如何在java中获得两个日期之间的日期列表

我要从开始日期到结束日期之间的日期列表。

结果应该是所有日期的列表,包括开始日期和结束日期。



慕田峪9158850
浏览 481回答 3
3回答

蝴蝶刀刀

早在2010年,我就建议用尤达-时间为了这个。注意,Joda-Time现在处于维护模式。从1.8(2014)开始,您应该使用java.time.一次加一天,直到到达结束日期:int&nbsp;days&nbsp;=&nbsp;Days.daysBetween(startDate,&nbsp;endDate).getDays();List<LocalDate>&nbsp;dates&nbsp;=&nbsp;new&nbsp;ArrayList<LocalDate>(days);&nbsp; &nbsp;//&nbsp;Set&nbsp;initial&nbsp;capacity&nbsp;to&nbsp;`days`.for&nbsp;(int&nbsp;i=0;&nbsp;i&nbsp;<&nbsp;days;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;LocalDate&nbsp;d&nbsp;=&nbsp;startDate.withFieldAdded(DurationFieldType.days(),&nbsp;i); &nbsp;&nbsp;&nbsp;&nbsp;dates.add(d);}实现您自己的迭代器也不会太困难,这样做会更好。

四季花海

java.time包如果你用Java 8,有一种更干净的方法。新java.time包在Java 8中,集成了尤达-时间API可以使用以下代码解决您的需求:String&nbsp;s&nbsp;=&nbsp;"2014-05-01";String&nbsp;e&nbsp;=&nbsp;"2014-05-10";LocalDate&nbsp;start&nbsp;=&nbsp;LocalDate.parse(s); LocalDate&nbsp;end&nbsp;=&nbsp;LocalDate.parse(e);List<LocalDate>&nbsp;totalDates&nbsp;=&nbsp;new&nbsp;ArrayList<>(); while&nbsp;(!start.isAfter(end))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;totalDates.add(start); &nbsp;&nbsp;&nbsp;&nbsp;start&nbsp;=&nbsp;start.plusDays(1);}

陪伴而非守候

java.time包如果你用Java 8,有一种更干净的方法。新java.time包在Java 8中,集成了尤达-时间API可以使用以下代码解决您的需求:String&nbsp;s&nbsp;=&nbsp;"2014-05-01";String&nbsp;e&nbsp;=&nbsp;"2014-05-10";LocalDate&nbsp;start&nbsp;=&nbsp;LocalDate.parse(s); LocalDate&nbsp;end&nbsp;=&nbsp;LocalDate.parse(e);List<LocalDate>&nbsp;totalDates&nbsp;=&nbsp;new&nbsp;ArrayList<>(); while&nbsp;(!start.isAfter(end))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;totalDates.add(start); &nbsp;&nbsp;&nbsp;&nbsp;start&nbsp;=&nbsp;start.plusDays(1);}
随时随地看视频慕课网APP

相关分类

Java
我要回答