Java Date Time Formate

Java's java.util package provides Date classes that encapsulate the current date and time. The Date class supports two constructors, as shown in the following table.

serial number Constructor describe
1 Date() This constructor initializes the object with the current date and time.
2 Date(long millisec) This constructor accepts a parameter equal to the number of milliseconds that have elapsed since midnight, January 1, 1970.

 

Following is the list of methods of the Date class −

serial number method describe
1 boolean after(Date date) Returns true if the calling Date object contains a date later than the date specified date , otherwise returns false.
2 boolean before(Date date) Returns true if the calling Date object contains a date earlier than the date specified date, otherwise returns false.
3 Object clone( ) Copy the called Date object.
4 int compareTo(Date date) Compares the value of the calling object with the date value of . Returns 0 if the values ​​are equal . Returns a negative value if the calling object is older than date. Returns a positive value if the calling object is later than date.
5 int compareTo(Object obj) Same as the operation if the obj object is a Date class object . compareTo(Date) Otherwise, it throws ClassCastException.
6 boolean equals(Object date) Returns true, if the calling Date object contains datet he same time and date as the specified time and date, otherwise false.
7 long getTime() Returns the number of milliseconds elapsed since January 1, 1970.
8 int hashCode() Returns the hash code of the calling object.
9 void setTime(long time) Set time specifies the time and date representing the elapsed time in milliseconds since midnight, January 1, 1970.
10 String toString( ) Convert the calling Date object to a string and return the result.

 

1. Get the current date and time

Here's an easy way to get the current date and time in Java. You can use Date object toString()methods to print the current date and time as follows −

import java.util.Date;
public class Test {

   public static void main(String args[]) {
     
      Date date = new Date();

      // display time and date using toString()
      System.out.println(date.toString());
   }
}

Execute the above sample code and get the following results:

Fri Mar 15 13:00:37 CST 2020
Shell

 

2. Use SimpleDateFormat to set the date format

SimpleDateFormat is a concrete class for formatting and parsing dates in the locale's way. SimpleDateFormatUsed to select from user-defined patterns for datetime formats.

Example

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

public class Test {

    public static void main(String args[]) {
        Date dNow = new Date();
        SimpleDateFormat ft = new SimpleDateFormat("yyyy.MM.dd (E)'at' hh:mm:ss a zzz");

        System.out.println("Current Date: " + ft.format(dNow));

        SimpleDateFormat ft2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

        System.out.println("Current Datetime: " + ft2.format(dNow));

    }
}

Execute the above sample code and get the following results:

Current Date: 2023.01.05 (Thu)at 12:43:45 PM UTC

Current Datetime: 2023-01-05 12:43:45

 

DateFormat format code

To specify a time format, use a time pattern string. In this mode, all ASCII letters are reserved as pattern letters, which are defined as follows −

Character Description Example
G Era designator AD
y Year in four digits 2001
M Month in year July or 07
d Day in month 10
h Hour in A.M./P.M. (1~12) 12
H Hour in day (0~23) 22
m Minute in hour 30
s Second in minute 55
S Millisecond 234
E Day in week Tuesday
D Day in year 360
F Day of week in month 2 (second Wed. in July)
w Week in year 40
W Week in month 1
a A.M./P.M. marker PM
k Hour in day (1~24) 24
K Hour in A.M./P.M. (0~11) 10
z Time zone Eastern Standard Time
' Escape for text Delimiter
" Single quote `

 

3. Java Format Date Using printf

Date and time formatting is done using printf methods. Use the two-letter format, beginning with and ending with a letter of the form, as shown in the code below.

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

public class Test {

    public static void main(String args[]) {
        // Instantiate a Date object
        Date date = new Date();

        // display time and date
        String str = String.format("Current Date/Time : %tc", date);

        System.out.printf(str);

    }
}
Java

Execute the above sample code and get the following results:

Current Date/Time : Thu Jan 05 12:44:52 UTC 2023

 

It would be somewhat silly to provide the date multiple times to format each part. A string format may indicate the index of the parameter to be formatted.

The index must follow and must end with .

example

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

public class Test {

    public static void main(String args[]) {
        // Instantiate a Date object
        Date date = new Date();

        // display time and date
        System.out.printf("%1$s %2$tB %2$td, %2$tY", "Due date:", date);
    }
}

Execute the above sample code and get the following results:

Due date: January 05, 2023
 

Alternatively, flags can be used. It says again to use the same parameters as the previous format specification.

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

public class Test {

    public static void main(String args[]) {
        // Instantiate a Date object
        Date date = new Date();

        // display formatted date
        System.out.printf("%s %tB %<te, %<tY", "Due date:", date);
    }
}
 

Execute the above sample code and get the following results:

Due date: January 5, 2023
 
4. Date and time conversion characters

example

Character Description Example
c Complete date and time Mon May 04 09:51:52 CDT 2009
F ISO 8601 date 2004-02-09
D U.S. formatted date (month/day/year) 02/09/2004
T 24-hour time 18:05:19
r 12-hour time 06:05:19 pm
R 24-hour time, no seconds 18:05
Y Four-digit year (with leading zeroes) 2004
y Last two digits of the year (with leading zeroes) 04
C First two digits of the year (with leading zeroes) 20
B Full month name February
b Abbreviated month name Feb
m Two-digit month (with leading zeroes) 02
d Two-digit day (with leading zeroes) 03
e Two-digit day (without leading zeroes) 9
A Full weekday name Monday
a Abbreviated weekday name Mon
j Three-digit day of year (with leading zeroes) 069
H Two-digit hour (with leading zeroes), between 00 and 23 18
k Two-digit hour (without leading zeroes), between 0 and 23 18
I Two-digit hour (with leading zeroes), between 01 and 12 06
l Two-digit hour (without leading zeroes), between 1 and 12 6
M Two-digit minutes (with leading zeroes) 05
S Two-digit seconds (with leading zeroes) 19
L Three-digit milliseconds (with leading zeroes) 047
N Nine-digit nanoseconds (with leading zeroes) 047000000
P Uppercase morning or afternoon marker PM
p Lowercase morning or afternoon marker pm
z RFC 822 numeric offset from GMT -0800
Z Time zone PST
s Seconds since 1970-01-01 00:00:00 GMT 1078884319
Q Milliseconds since 1970-01-01 00:00:00 GMT 1078884319047

There are other useful classes related to dates and times. See the Java Standards documentation for more details.

 

5. How do I parse the String into Date in Java 

SimpleDateFormat The class has some additional methods, in particular parse(), it is used to parse the string according to the format stored in the given SimpleDateFormat object.

Example

import java.util.*;
import java.text.*;

public class Test {

    public static void main(String args[]) {
        SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
        String input = args.length == 0 ? "2021-11-11" : args[0];

        System.out.print(input + " Format:");
        Date t;
        try {
            t = ft.parse(input);
            System.out.println(t);
        } catch (ParseException e) {
            System.out.println("Unparseable using " + ft);
        }
    }
}
 

Execute the above sample code and get the following results:

2021-11-11Thu Nov 11 00:00:00 UTC 2021

 

 

6. How do i print delay with 1 second in java 

Sleep can occur during any period of the computer's lifecycle. For example, the following program will sleep for seconds -

import java.util.*;
import java.text.*;

public class Test {

    public static void main(String args[]) {
        try {
            System.out.println(new Date());
            Thread.sleep(5 * 60 * 10);
            System.out.println(new Date());
        } catch (Exception e) {
            System.out.println("Got an exception!");
        }
    }
}

Execute the above sample code and get the following results:

Thu Jan 05 12:56:37 UTC 2023
Thu Jan 05 12:56:40 UTC 2023
 

7. How do i Measure elapsed time in Java

Sometimes, it may be necessary to measure time points in milliseconds. Rewriting the above example 

import java.util.*;
import java.text.*;

public class Test {

    public static void main(String args[]) {
        try {
            long start = System.currentTimeMillis();
            System.out.println(new Date());

            Thread.sleep(5 * 60 * 10);
            System.out.println(new Date());

            long end = System.currentTimeMillis();
            long diff = end - start;
            System.out.println("Difference is: " + diff);
        } catch (Exception e) {
            System.out.println("Got an exception!");
        }
    }
}
 

Execute the above sample code and get the following results:

Thu Jan 05 12:58:40 UTC 2023
Thu Jan 05 12:58:43 UTC 2023
Difference is: 3115

8. What is Gregorian Calendar Class

Gregorian Calendar is a concrete implementation of a Calendar class that implements the normal Gregorian calendar with which we are familiar. Here we are just learn the methods of Gregorian Calenar class. More about Breborian calendar you can read at Java documentation for this.

 

How to get GregorianCalendar in Java

The getInstance( ) method of Calendar returns a Gregorian Calendar initialized with the current date and time in the default locale and time zone. Gregorian Calendar defines two fields: AD and BC. These represent the two eras defined by the Gregorian calendar.

There are also several constructors for GregorianCalendar objects −

Sr.No. Constructor & Description
1

GregorianCalendar()

Create a default Gregorian Calendar using the current time in the default time zone with the default locale.

2

GregorianCalendar(int year, int month, int date)

Create a Gregorian Calendar with the given date set in the default time zone with the default locale.

3

GregorianCalendar(int year, int month, int date, int hour, int minute)

Create a Gregorian Calendar with the given date and time set for the default time zone with the default locale.

4

GregorianCalendar(int year, int month, int date, int hour, int minute, int second)

Create a Gregorian Calendar with the given date and time set for the default time zone with the default locale.

5

GregorianCalendar(Locale aLocale)

Create a Gregorian Calendar based on the current time in the default time zone with the given locale.

6

GregorianCalendar(TimeZone zone)

Create a Gregorian Calendar based on the current time in the given time zone with the default locale.

7

GregorianCalendar(TimeZone zone, Locale aLocale)

Create a Gregorian Calendar based on the current time in the given time zone with the given locale.

 

Below are the the list of few useful support methods provided by Gregorian Calendar class 

Sr.No. Method & Description
1

void add(int field, int amount)

Adds the specified (signed) amount of time to the given time field, based on the calendar's rules.

2

protected void computeFields()

Converts UTC as milliseconds to time field values.

3

protected void computeTime()

Overrides Calendar Converts time field values to UTC as milliseconds.

4

boolean equals(Object obj)

Compares this GregorianCalendar to an object reference.

5

int get(int field)

Gets the value for a given time field.

6

int getActualMaximum(int field)

Returns the maximum value that this field could have, given the current date.

7

int getActualMinimum(int field)

Returns the minimum value that this field could have, given the current date.

8

int getGreatestMinimum(int field)

Returns highest minimum value for the given field if varies.

9

Date getGregorianChange()

Gets the Gregorian Calendar change date.

10

int getLeastMaximum(int field)

Returns lowest maximum value for the given field if varies.

11

int getMaximum(int field)

Returns maximum value for the given field.

12

Date getTime()

Gets this Calendar's current time.

13

long getTimeInMillis()

Gets this Calendar's current time as a long.

14

TimeZone getTimeZone()

Gets the time zone.

15

int getMinimum(int field)

Returns minimum value for the given field.

16

int hashCode()

Overrides hashCode.

17

boolean isLeapYear(int year)

Determines if the given year is a leap year.

18

void roll(int field, boolean up)

Adds or subtracts (up/down) a single unit of time on the given time field without changing larger fields.

19

void set(int field, int value)

Sets the time field with the given value.

20

void set(int year, int month, int date)

Sets the values for the fields year, month, and date.

21

void set(int year, int month, int date, int hour, int minute)

Sets the values for the fields year, month, date, hour, and minute.

22

void set(int year, int month, int date, int hour, int minute, int second)

Sets the values for the fields year, month, date, hour, minute, and second.

23

void setGregorianChange(Date date)

Sets the GregorianCalendar change date.

24

void setTime(Date date)

Sets this Calendar's current time with the given Date.

25

void setTimeInMillis(long millis)

Sets this Calendar's current time from the given long value.

26

void setTimeZone(TimeZone value)

Sets the time zone with the given time zone value.

27

String toString()

Returns a string representation of this calendar.