Java Date & Time: SimpleDateFormat, Current Date & Compare

In this tutorial, you will learn -
  • Display Current Date in Java
  • SimpleDateFormat: Parse and Format Dates
  • Compare Dates Example
Let us first understand the parameters that consist of a Date.
How to use Date in Java
It will primarily contain -
  • The year (in either 2 or 4 digits)
  • The month (in either 2 digits, First 3 letters of the month or the entire word of the month).
  • The date (it will be the actual date of the month).
  • The day (the day at the given date – like Sun, Mon, Tue, etc.)
Concerning computer systems, there are quite a lot of parameters that can be used to associate with a date. We shall see them in the later parts of this topic.

Display Date in Java

Now let us see how Java provide us the Date. First, we shall see how to get the current date-
Java provides a Date class under the java.util package, The package provides several methods to play around with the date.
You can use the Date object by invoking the constructor of Date class as follows:
import java.util.Date;
class Date_Ex1 {
 public static void main(String args[]) {
  // Instantiate a Date object by invoking its constructor
  Date objDate = new Date();
  // Display the Date & Time using toString()
  System.out.println(objDate.toString());
 }
}
Output:
Wed Nov 29 06:36:22 UTC 2017
In above example date shown in default format, If we want to show the date and time in another format, first understand the Formatting of date.

SimpleDateFormat: Parse and Format Dates

You all must have learned the alphabets in your kindergarten ….
Let us now learn the ABC’s of the date format.
LetterDate or Time ComponentExamples
GEra designatorAD
yYear2018
MMonth in yearJuly or Jul or 07
wWeek in year27
WWeek in month2
DDay in year189
dDay in month10
FDay of week in month2
EDay name in weekTuesday or Tue
uDay number of week (1 = Monday, ..., 7 = Sunday)1
aAm/pm markerPM
HHour in day (0-23)0
kHour in day (1-24)24
KHour in am/pm (0-11)0
hHour in am/pm (1-12)12
mMinute in hour30
sSecond in minute55
SMillisecond978
zTime zonePacific Standard Time; PST; GMT-08:00
ZTime zone-0800
XTime zone-08 or -0800 or -08:00
Don’t worry, you don’t need to remember all of these, they can be referred anytime you need to format a particular date.

How to use the SimpleDateFormat?

Java provides a class called a SimpleDateFormat that allows you to format and parse dates in the as per your requirements.
You can use the above characters to specify the format - For example:
1) Date format required: 2012.10.23 20:20:45 PST
The appropriate date format specified will be- yyyy.MM.dd HH:mm:ss zzz
2) Date format required:09:30:00 AM 23-May-2012
The appropriate date format specified will be-hh:mm:ss a dd-MMM-yyyy
Tip: Be careful with the letter capitalization. If you mistake M with m, you will undesired results!
Let's learn this with a code example.
import java.text.SimpleDateFormat;
import java.util.Date;
class TestDates_Format {
 public static void main(String args[]) {
  Date objDate = new Date(); // Current System Date and time is assigned to objDate
  System.out.println(objDate);
  String strDateFormat = "hh:mm:ss a dd-MMM-yyyy"; //Date format is Specified
  SimpleDateFormat objSDF = new SimpleDateFormat(strDateFormat); //Date format string is passed as an argument to the Date format object
  System.out.println(objSDF.format(objDate)); //Date formatting is applied to the current date
 }
}
Output:
Wed Nov 29 06:31:41 UTC 2017
06:31:41 AM 29-Nov-2017

Compare Dates Example

How to use Date in Java
The most useful method of comparing dates is by using the method – compareTo()
Let us take a look at the below code snippet-
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;

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

  SimpleDateFormat objSDF = new SimpleDateFormat("dd-mm-yyyy");
  Date dt_1 = objSDF.parse("20-08-1981");
  Date dt_2 = objSDF.parse("12-10-2012");

  System.out.println("Date1 : " + objSDF.format(dt_1));
  System.out.println("Date2 : " + objSDF.format(dt_2));

  if (dt_1.compareTo(dt_2) > 0) {
   System.out.println("Date 1 occurs after Date 2");
  } // compareTo method returns the value greater than 0 if this Date is after the Date argument.
  else if (dt_1.compareTo(dt_2) < 0) {
   System.out.println("Date 1 occurs before Date 2");
  } // compareTo method returns the value less than 0 if this Date is before the Date argument;
  else if (dt_1.compareTo(dt_2) == 0) {
   System.out.println("Both are same dates");
  } // compareTo method returns the value 0 if the argument Date is equal to the second Date;
  else {
   System.out.println("You seem to be a time traveller !!");
  }
 }
}
Output:
Date1 : 20-08-1981
Date2 : 12-10-2012
Date 1 occurs before Date 2

No comments:

Post a Comment