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.
[java]
import java.util.Date;
public class MyDate {
public static void main(String[] args)
{
Date date = new Date();
System.out.println(date);
}
}[/java]
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.
[java]
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));
}
}
[/java]
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
[java]
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));
}
}[/java]
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
[java]
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.");
}
}
[/java]
output:
56 days, 1 hours, 1 minutes, 50 seconds