HowToDoInJava

  • Python
  • Java
  • Spring Boot
  • Dark Mode
Home / Java / Java Date Time / Java – Get All Dates Between Two Dates

Java – Get All Dates Between Two Dates

Learn to get all the dates between the two given dates. We will see the solutions in Java 7, Java 8, and Java 9.

1. LocalDate.datesUntil() – Java 9

LocalDate‘s datesUntil() method returns a sequential ordered stream of dates. The returned stream starts from startDate and goes to endDate (exclusive) by an incremental step of 1 day.

LocalDate startDate = LocalDate.now();
LocalDate endDate = startDate.plusMonths(2);

List<LocalDate> listOfDates = startDate.datesUntil(endDate)
							.collect(Collectors.toList());

System.out.println(listOfDates.size());		// 61

2. Stream.iterate() – Java 8

To get all dates, create a stream of dates adding adding 1 to startdate and so on, until end date.

LocalDate startDate = LocalDate.now();
LocalDate endDate = startDate.plusMonths(2);

long numOfDays = ChronoUnit.DAYS.between(startDate, endDate);
		 
List<LocalDate> listOfDates1 = Stream.iterate(startDate, date -> date.plusDays(1))
								 	.limit(numOfDays)
								 	.collect(Collectors.toList());

System.out.println(listOfDates.size());		// 61

The same kind of stream can be obtained in multiple ways. For example, LongStream is one of those ways.

LocalDate startDate = LocalDate.now();
LocalDate endDate = startDate.plusMonths(2);

long numOfDays = ChronoUnit.DAYS.between(startDate, endDate);
		 
List<LocalDate> listOfDates2 = LongStream.range(0, numOfDays)
								.mapToObj(startDate::plusDays)
							 	.collect(Collectors.toList());

System.out.println(listOfDates.size());		// 61

3. Create dates in while loop – Java 7

To get all dates from startDate to endDate in Java 7, we must write our own custom logic as their is very limited API support in JDK. Or else, consider using 3rd party libraries e.g. Joda-time.

Date todaysDate = new Date();
Date anotherDate = new Date(todaysDate.getTime() + 61*24*60*60*1000l);

List<Date> listOfDates3 = getDaysBetweenDates(todaysDate, anotherDate);

System.out.println(listOfDates3.size());		//61
		 
public static List<Date> getDaysBetweenDates(Date startdate, Date enddate)
{
    List<Date> dates = new ArrayList<Date>();
    Calendar calendar = new GregorianCalendar();
    calendar.setTime(startdate);

    while (calendar.getTime().before(enddate))
    {
        Date result = calendar.getTime();
        dates.add(result);
        calendar.add(Calendar.DATE, 1);
    }
    return dates;
}

Drop me your questions related to get the list of all dates between two dates in Java.

Happy Learning !!

Sourcecode Download

Was this post helpful?

Let us know if you liked the post. That’s the only way we can improve.

Share this:

  • Twitter
  • Facebook
  • LinkedIn
  • Reddit

About Lokesh Gupta

A family guy with fun loving nature. Love computers, programming and solving everyday problems. Find me on Facebook and Twitter.

Comments are closed on this article!

Search Tutorials

Java Date Time Tutorial

  • Java – Date Time APIs
  • Java – Date Parsing
  • Java – Date Formatting
  • Java 8 – LocalDate
  • Java 8 – LocalTime
  • Java 8 – LocalDateTime
  • Java 8 – ZonedDateTime
  • Java 8 – Period
  • Java 8 – DateTimeFormatter
  • Java 8 – TemporalAdjusters
  • Java 8 – TemporalQuery
  • Java 8 – DayOfWeek
  • Java – Date
  • Java – Locale

Java Tutorial

  • Java Introduction
  • Java Keywords
  • Java Flow Control
  • Java OOP
  • Java Inner Class
  • Java String
  • Java Enum
  • Java Collections
  • Java ArrayList
  • Java HashMap
  • Java Array
  • Java Sort
  • Java Clone
  • Java Date Time
  • Java Concurrency
  • Java Generics
  • Java Serialization
  • Java Input Output
  • Java New I/O
  • Java Exceptions
  • Java Annotations
  • Java Reflection
  • Java Garbage collection
  • Java JDBC
  • Java Security
  • Java Regex
  • Java Servlets
  • Java XML
  • Java Puzzles
  • Java Examples
  • Java Libraries
  • Java Resources
  • Java 14
  • Java 12
  • Java 11
  • Java 10
  • Java 9
  • Java 8
  • Java 7

Meta Links

  • About Me
  • Contact Us
  • Privacy policy
  • Advertise
  • Guest and Sponsored Posts

Recommended Reading

  • 10 Life Lessons
  • Secure Hash Algorithms
  • How Web Servers work?
  • How Java I/O Works Internally?
  • Best Way to Learn Java
  • Java Best Practices Guide
  • Microservices Tutorial
  • REST API Tutorial
  • How to Start New Blog

Copyright © 2020 · HowToDoInjava.com · All Rights Reserved. | Sitemap

  • Java 15 New Features
  • Sealed Classes and Interfaces
  • EdDSA (Ed25519 / Ed448)