How do I format a date into dd/mm/yyyy?

Formatting a display is a common requirement when creating a program. Information in a good format can be seen as an added value to the user of the program. Using Java SimpleDateFormat we can easily format a date in our program.

package org.kodejava.example.text;

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

public class DateFormatExample {
    public static void main(String[] args) {
        Date date = Calendar.getInstance().getTime();

        // Display a date in day, month, year format
        DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
        String today = formatter.format(date);
        System.out.println("Today : " + today);

        // Display date with day name in a short format
        formatter = new SimpleDateFormat("EEE, dd/MM/yyyy");
        today = formatter.format(date);
        System.out.println("Today : " + today);

        // Display date with a short day and month name
        formatter = new SimpleDateFormat("EEE, dd MMM yyyy");
        today = formatter.format(date);
        System.out.println("Today : " + today);

        // Formatting date with full day and month name and show time up to
        // milliseconds with AM/PM
        formatter = new SimpleDateFormat("EEEE, dd MMMM yyyy, hh:mm:ss.SSS a");
        today = formatter.format(date);
        System.out.println("Today : " + today);
    }
}

Let’s view what we got on the console:

Today : 02/12/2007
Today : Sun, 02/12/2007
Today : Sun, 02 Dec 2007
Today : Sunday, 02 December 2007, 08:03:17.828 AM

How do I convert string of time to time object?

You want to convert a string representing a time into a time object in Java. As we know that Java represents a time information in a class java.util.Date, this class keep information for date and time.

Now if you have a string of time like 15:30:18, you can use a SimpleDateFormat object to parse the string time and return a java.util.Date object. The pattern of the string should be passed to the SimpleDateFormat constructor. In the example below the string is formatted as hh:mm:ss (hour:minute:second).

package org.kodejava.example.util;

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

public class StringToTimeExample {
    public static void main(String[] args) {        
        // A string of time information
        String time = "15:30:18";

        // Create an instance of SimpleDateFormat with the specified
        // format.
        DateFormat sdf = new SimpleDateFormat("hh:mm:ss");
        try {
            // To get the date object from the string just called the 
            // parse method and pass the time string to it. This method 
            // throws ParseException if the time string is invalid. 
            // But remember as we don't pass the date information this 
            // date object will represent the 1st of january 1970.
            Date date = sdf.parse(time);            
            System.out.println("Date and Time: " + date);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}