Java provides Date Class in java.util.Date package.This class encapsulate current Date and time. When we declare a date object it acquires current date and time. consider below example.
import java.util.Date; public class MyDate { public static void main(String[] args) { Date date = new Date(); System.out.println(date); } }
output :
Mon Mar 28 14:53:03 IST 2016
We can see the program has printed the current date. But generally do we use this format? No. we use date format like ’02-12-2016′ or ’21 March 2002′ like that. so in order to get a date in this format we must understand some notations for date
Notation | Description | Example |
dd | day in digit | 02 |
E /EE / EEE | day in words (partial) | Mon |
EEEE | day in words (Full) | Monday |
MM (m capital) | Month in digit | 03 |
MMM | Month in words (partial) | Mar |
MMMM | Month in words (Full) | March |
M | Month in a single digit when month is single digit. (if we use MM then it gives 02 otherwise 2) | 2 |
yy | year in 2 digit | 16 |
yyyy | year in 4 digit | 2016 |
hh | hours (24 hour clock) | 11 |
mm | minutes | 23 |
ss | Seconds | 11 |
To use above formats we will need SimpleDateFormat class which is in java.text.SimpleDateFormat package. let us see below example in order to see how can we use this.
import java.text.SimpleDateFormat; import java.util.Date; public class MyDate { public static void main(String[] args) { System.out.println("The Given date is"); Date date = new Date(); System.out.println(date); SimpleDateFormat sd= new SimpleDateFormat("dd/MM/yyyy"); System.out.println("The Formatted date is"); System.out.println(sd.format(date)); } }
Output:
The Given date is
Mon Mar 28 15:32:28 IST 2016
The Formatted date is
28/03/2016
sd.format() return a string in required format.
Here we have seen how to convert a data into a given format. but suppose if i am given a date in string format and i wanted it to convert in a date format then what do i do. please consider below example
public class MyDate { public static void main(String[] args) throws ParseException { String str = "30-2-2016"; System.out.println("The Given date in string is : "+ str); Date date; SimpleDateFormat sd= new SimpleDateFormat("dd-MM-yyyy"); System.out.println("The Formatted date is"); System.out.println(sd.parse(str)); } }
Output:
The Given date in string is : 30-2-2016
The Formatted date is
Tue Mar 01 00:00:00 IST 2016
Finding a date difference between 2 dates
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateDiffernce { public static void main(String[] args) throws ParseException { String startDate = "06/04/2016 09:29:58"; String stopDate = "01/06/2016 10:31:48"; SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); Date d1 ; Date d2 ; d1 = format.parse(startDate); d2 = format.parse(stopDate); long diff = d2.getTime() - d1.getTime(); //difference in milliseconds long diffSeconds = diff / 1000 % 60; long diffMinutes = diff / (60 * 1000) % 60; long diffHours = diff / (60 * 60 * 1000) % 24; long diffDays = diff / (24 * 60 * 60 * 1000); System.out.print(diffDays + " days, "); System.out.print(diffHours + " hours, "); System.out.print(diffMinutes + " minutes, "); System.out.print(diffSeconds + " seconds."); } }
output:
56 days, 1 hours, 1 minutes, 50 seconds