Showing posts with label DateTimeFormatter. Show all posts
Showing posts with label DateTimeFormatter. Show all posts

Monday, September 7, 2026

Find Number of Days Between Two Dates in Java

Find Number of Days Between Two Given Dates in Java

Sometimes we need to find the number of days between two given dates. Earlier, I used Calendar and manually calculated the difference between the dates.

With Java 8 and later, this can be done much more easily using the java.time package.

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;

public class FindDays {

    public static void main(String[] args) {

        String str1 = "20/01/2013";
        String str2 = "28/03/2013";

        DateTimeFormatter formatter =
                DateTimeFormatter.ofPattern("dd/MM/yyyy");

        LocalDate date1 = LocalDate.parse(str1, formatter);
        LocalDate date2 = LocalDate.parse(str2, formatter);

        long days = ChronoUnit.DAYS.between(date1, date2);

        System.out.println("Final Days.... " + days);
    }
}

Output:

Final Days.... 67

How it works

DateTimeFormatter is used to tell Java the format of the input dates.

LocalDate represents a date without a time or timezone.

ChronoUnit.DAYS.between() calculates the number of days between the two dates.

For example:

20/01/2013 → 28/03/2013 = 67 days

The older Calendar approach can still be found in existing Java applications, but for new development, the java.time API is generally the better choice.


Friday, November 11, 2016

How to Convert a String Date to Java Date

This can be done by some other way also, but  I have done in the below format. Hope this is will help you.

Example :- 

Input String Date - "20160829T23:59:59Z"


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

public class StringDateToCalender {
    public static void main(String[] args) throws Exception {
        String string = "20160829T23:59:59Z";
        String pattern = "yyyyMMdd'T'HH:mm:ss'Z'";
        Date date = new SimpleDateFormat(pattern).parse(string);
        System.out.println(date);
    }
}

Output :-
Converted Date is :: Mon Aug 29 23:59:59 AEST 2016

Tuesday, April 7, 2015

How to Convert String to Date in Java Using Joda-Time

How to convert String to Date in java using Joda Time ?

The below program converts the String-to-Date and Date-to-String using joda time library. Joda Time library is a 3rd party jar and its very easy and compact to use for such conversion. Download the joda jar from https://github.com/JodaOrg/joda-time/releases

Example :-

package jdevelopersguide.lab;

import java.util.Date;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;

public class ConvertToDate {

/**
* @param args
*/
public static void main(String[] args) {
String date="2015-04-07";
DateTime jodaTimeDate=DateTimeFormat.forPattern("yyyy-mm-dd").parseDateTime(date);
System.out.println("Joda Time Date is::"+jodaTimeDate);

//Convert Joda DateTime to Java Date
Date javaDate=jodaTimeDate.toDate();
System.out.println("Converted Java Date is:::"+javaDate);

//Convert Java Date to String
String convertedDate=DateTimeFormat.forPattern("dd-mm-yyyy").print(javaDate.getTime());
System.out.println("Converted Java Date to String::::"+convertedDate);
}

}


Output :-


Joda Time Date is::2015-01-07T00:04:00.000+11:00
Converted Java Date is:::Wed Jan 07 00:04:00 EST 2015
Converted Java Date to String::::07-04-2015



The  Pattern is really very simple and you can use as per your requirements. There are many pattens are there as follows :-

The pattern syntax is mostly compatible with java.text.SimpleDateFormat - time zone names cannot be parsed and a few more symbols are supported. All ASCII letters are reserved as pattern letters, which are defined as follows:
 Symbol  Meaning                      Presentation  Examples
 ------  -------                      ------------  -------
 G       era                          text          AD
 C       century of era (>=0)         number        20
 Y       year of era (>=0)            year          1996

 x       weekyear                     year          1996
 w       week of weekyear             number        27
 e       day of week                  number        2
 E       day of week                  text          Tuesday; Tue

 y       year                         year          1996
 D       day of year                  number        189
 M       month of year                month         July; Jul; 07
 d       day of month                 number        10

 a       halfday of day               text          PM
 K       hour of halfday (0~11)       number        0
 h       clockhour of halfday (1~12)  number        12

 H       hour of day (0~23)           number        0
 k       clockhour of day (1~24)      number        24
 m       minute of hour               number        30
 s       second of minute             number        55
 S       fraction of second           number        978

 z       time zone                    text          Pacific Standard Time; PST
 Z       time zone offset/id          zone          -0800; -08:00; America/Los_Angeles

 '       escape for text              delimiter
 ''      single quote                 literal       '
 

You can find more details in joda site