$show=/label

Java Get Next And Previous Dates

SHARE:

A quick guide to get the next and previous dates from the current date or for any given date. This can be solved by using java.util.date and java 8.

1. Overview

In this tutorial, We'll learn how to get next and previous dates from the current date or for any date in old and new java 8 beyond.

Sometime it is referred as tomorrows or yesterdays date is needed for a particular date. 

To solve this problem, we should be clear on the input date format. If the date is in string format then first need to get the date format in string and next need to convert into java Date.

Sometimes, input can be date in the format of java.util.Date or java.time.LocalDate.

Let us explore the all possible ways to get the old and new dates from the given date.

Java Get Next And Previous Dates


2. Getting the Next & Previous Date from java.util.Date


First, we will look at date in string format and next direct Date() object.


2.1 Date in String Format


Assume that input date is given in string format and we will print the next and previous dates also in the same string format.

Steps to get the next date:

Step 1: Convert the string to date
Step 2: Get the milliseconds from date and add 1 day milliseconds (24 * 60 * 60 * 1000) 
Step 3: Next, covert this addition of milliseconds to date and this will be next date for the given date.
Step 4: Convert next date to string form as input.

Steps to get the previous date:

Step 1: Convert the string to date
Step 2: Get the milliseconds from date and subtract 1 day milliseconds (24 * 60 * 60 * 1000) 
Step 3: Next, covert this subtraction of milliseconds to date and this will be previous date for the given date.
Step 4: Convert next date to string form as input.

The below examples covers how to increment or decrement a date by one day in java.


package com.javaprogramto.java8.dates.nextprevious;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class NextPreviousFromStringDate {

	// Millseconds in a day
	private static final long ONE_DAY_MILLI_SECONDS = 24 * 60 * 60 * 1000;

	// date format
	private static final String DATE_FORMAT = "yyyy-MM-dd";

	public static void main(String[] args) throws ParseException {

		// Date in string format as "YYYY-MM-DD"
		String dateInString = "2021-12-12";

		// Simple date formatter
		SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
		Date date = dateFormat.parse(dateInString);

		// Getting the next day and formatting into 'YYYY-MM-DD'
		long nextDayMilliSeconds = date.getTime() + ONE_DAY_MILLI_SECONDS;
		Date nextDate = new Date(nextDayMilliSeconds);
		String nextDateStr = dateFormat.format(nextDate);

		// Getting the previous day and formatting into 'YYYY-MM-DD'
		long previousDayMilliSeconds = date.getTime() - ONE_DAY_MILLI_SECONDS;
		Date previousDate = new Date(previousDayMilliSeconds);
		String previousDateStr = dateFormat.format(previousDate);

		// printing the input, tomorrow and yesterday's date as strings. 
		System.out.println("Given Date : " + dateInString);
		System.out.println("Next Date : " + nextDateStr);
		System.out.println("Previous Date : " + previousDateStr);
	}
}
 
Output:
Given Date : 2021-12-12
Next Date : 2021-12-13
Previous Date : 2021-12-11
 

2.2 Get Next and Previous date from java.util.Date format


Next example is to get the next and previous dates from java.util.Date as current date time.
package com.javaprogramto.java8.dates.nextprevious;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class NextPreviousFromUtilDate {

	// Millseconds in a day
	private static final long ONE_DAY_MILLI_SECONDS = 24 * 60 * 60 * 1000;

	// date format
	private static final String DATE_FORMAT = "yyyy-MM-dd";

	public static void main(String[] args) throws ParseException {

		// current date time
		Date currentDate = new Date();

		// Simple date formatter to show in the input and output dates to redable form.
		SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);

		// Getting the next day and formatting into 'YYYY-MM-DD'
		long nextDayMilliSeconds = currentDate.getTime() + ONE_DAY_MILLI_SECONDS;
		Date nextDate = new Date(nextDayMilliSeconds);
		String nextDateStr = dateFormat.format(nextDate);

		// Getting the previous day and formatting into 'YYYY-MM-DD'
		long previousDayMilliSeconds = currentDate.getTime() - ONE_DAY_MILLI_SECONDS;
		Date previousDate = new Date(previousDayMilliSeconds);
		String previousDateStr = dateFormat.format(previousDate);

		// printing the input, tomorrow and yesterday's date as strings.
		System.out.println("Current Date : " + dateFormat.format(currentDate));
		System.out.println("Next Date : " + nextDateStr);
		System.out.println("Previous Date : " + previousDateStr);
	}
}
 
Output:
Current Date : 2020-11-30
Next Date : 2020-12-01
Previous Date : 2020-11-29
 

3. Java 8 - Getting the Next & Previous Date


Next, How to get the tomorrow and yesterday dates in java 8.

First create a date object using LocalDate class. Next, call its plusDays(1) and minusDays(1) methods to get the next and previous dates in java.

These two methods are part of java 8 api and simplifies the processing of adding required number of days.

In our case, we need to add one day to get next date and mins one day to get previous date.

package com.javaprogramto.java8.dates.nextprevious;

import java.text.ParseException;
import java.time.LocalDate;

/**
 * How to get the next and previous dates in java 8?
 * 
 * @author javaprogramto.com
 *
 */

public class Java8NextPreviousDates {

	public static void main(String[] args) throws ParseException {

		// Obtaining current date
		LocalDate currentDate = LocalDate.now();

		// Getting the next date using plusDays() method
		LocalDate nextDate = currentDate.plusDays(1);

		// Getting the previous date using minusDays() method
		LocalDate previousDate = currentDate.minusDays(1);

		// printing the input, tomorrow and yesterday's dates
		System.out.println("Current Date : " + currentDate);
		System.out.println("Next Date : " + nextDate);
		System.out.println("Previous Date : " + previousDate);
	}
}
 
Output:
Current Date : 2020-11-30
Next Date : 2020-12-01
Previous Date : 2020-11-29
 


4. Conclusion


In this article, we've seen how to obtain the next and previous days from current date or any given time in traditional java.util.Date class and LocalDate in java 8.




COMMENTS

BLOGGER

About Us

Author: Venkatesh - I love to learn and share the technical stuff.
Name

accumulo,1,ActiveMQ,2,Adsense,1,API,37,ArrayList,17,Arrays,16,Bean Creation,3,Bean Scopes,1,BiConsumer,1,Blogger Tips,1,Books,1,C Programming,1,Collection,5,Collections,29,Collector,1,Command Line,1,Compile Errors,1,Configurations,7,Constants,1,Control Statements,8,Conversions,6,Core Java,93,Corona India,1,Create,2,CSS,1,Date,3,Date Time API,35,Dictionary,1,Difference,1,Download,1,Eclipse,2,Efficiently,1,Error,1,Errors,1,Exception,1,Exceptions,3,Fast,1,Files,14,Float,1,Font,1,Form,1,Freshers,1,Function,3,Functional Interface,2,Garbage Collector,1,Generics,4,Git,4,Grant,1,Grep,1,HashMap,1,HomeBrew,2,HTML,2,HttpClient,2,Immutable,1,Installation,1,Interview Questions,5,Iterate,2,Jackson API,3,Java,30,Java 10,1,Java 11,5,Java 12,5,Java 13,2,Java 14,2,Java 8,111,Java 8 Difference,2,Java 8 Stream Conversions,2,java 8 Stream Examples,3,Java 9,1,Java Conversions,11,Java Design Patterns,1,Java Files,1,Java Program,3,Java Programs,105,Java Spark,1,java.lang,5,java.util. function,1,jQuery,1,Kotlin,11,Kotlin Conversions,6,Kotlin Programs,10,Lambda,1,lang,29,Leap Year,1,live updates,1,LocalDate,1,Logging,1,Mac OS,2,Math,1,Matrix,5,Maven,1,Method References,1,Mockito,1,MongoDB,3,New Features,1,Operations,1,Optional,6,Oracle,5,Oracle 18C,1,Partition,1,Patterns,1,Programs,1,Property,1,Python,2,Quarkus,1,Read,1,Real Time,1,Recursion,2,Remove,2,Rest API,1,Schedules,1,Serialization,1,Servlet,2,Sort,1,Sorting Techniques,8,Spring,2,Spring Boot,23,Spring Email,1,Spring MVC,1,Streams,28,String,59,String Programs,12,String Revese,1,Swing,1,System,1,Tags,1,Threads,11,Tomcat,1,Tomcat 8,1,Troubleshoot,16,Unix,3,Updates,3,util,5,While Loop,1,
ltr
item
JavaProgramTo.com: Java Get Next And Previous Dates
Java Get Next And Previous Dates
A quick guide to get the next and previous dates from the current date or for any given date. This can be solved by using java.util.date and java 8.
https://1.bp.blogspot.com/-Ahku80ft7Wg/X8TlX483slI/AAAAAAAADGI/PVoaagvirdwUUmjLo4Q4Wq1CUKWmfoK1wCLcBGAsYHQ/w640-h472/Java%2BGet%2BNext%2BAnd%2BPrevious%2BDates.png
https://1.bp.blogspot.com/-Ahku80ft7Wg/X8TlX483slI/AAAAAAAADGI/PVoaagvirdwUUmjLo4Q4Wq1CUKWmfoK1wCLcBGAsYHQ/s72-w640-c-h472/Java%2BGet%2BNext%2BAnd%2BPrevious%2BDates.png
JavaProgramTo.com
https://www.javaprogramto.com/2020/11/java-get-next-previous-date.html
https://www.javaprogramto.com/
https://www.javaprogramto.com/
https://www.javaprogramto.com/2020/11/java-get-next-previous-date.html
true
3124782013468838591
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content