How to Format Date and Time in the Java 8 Date/Time API

  • google plus

In Brief...

Java 8 introduces a date and time formatter for use with the new date and time objects. The formatter permits you to build a pattern that can be applied to date time, date and time objects in order to display the object in a meaningful way. To learn how to format date and time objects in Java 8, follow these four steps.

Take our Introduction to Java Training course for free.

See the Course Outline and Register


  1. Open your text editor and create the Java program that will demonstrate formatting date and time. Type in the following Java statements:
    import java.time.*;
    import java.time.format.*;
    public class FormattingDateAndTime {
    	public static void main (String args[]) {
    		// Create a local date time object:
    		DateTimeFormatter formatToday=DateTimeFormatter.ofPattern("MM/dd/yy hh:mm:ss");
    		//String formattedToday=today.format(formatToday);
    		System.out.format("Formatted date time is %s\n", today.format(formatToday));
    		// Create a local time object:
    		DateTimeFormatter formatTimeNow=DateTimeFormatter.ofPattern("HH:mm:ss a");
    		System.out.format("Formatted current time is %s\n", timeNow.format(formatTimeNow));
    		// Create a local date object:
    		DateTimeFormatter formatDateToday=DateTimeFormatter.ofPattern("EEEE MMM dd ");
    		System.out.format("Formatted current date is %s\n" , dateToday.format(formatDateToday));	

    The DateTimeFormatter class can be used to format date/time objects. The ofPattern method specifies the pattern. The pattern consists of characters that have a special meaning to the formatter. For example, a pattern of MM indicates that a two-digit month number is to be displayed (e.g., the month number of February is "02"). Patterns like M can imply a numeric value or a text value. If you specify MMM then the text value of the month abbreviation will be generated (e.g., "Feb"). A specification of MMMM would generate the complete month name (e.g., "February"). The E pattern applies to weekday names. Coding E yields the first character of the weekday name (e.g., "W" for Wednesday). The EEE pattern results in the abbreviation of the weekday name (e.g., "Wed" for Wednesday). If you use EEEE then the weekday name (e.g., "Wednesday") is generated.

    For time patterns, use mm for two-digit minute and ss for two-digit second. The hh pattern generates the two-digit hour for a 12-hour clock (e.g., 6PM is "06") and HH generates the two-digit hour for a 24-hour clock (e.g., 6PM is "18"). The a requests "AM" (between midnight and noon) or "PM" (between noon and midnight).

  2. Save your file as
  3. Open a command prompt and navigate to the directory containing your new Java program. Then type in the command to compile the source and hit Enter.
    Compile Program with Formatted Date Time
  4. You are ready to test your Java program. Type in the command to run the Java runtime launcher and hit Enter. Notice the output shows the formatted values of the various date and time objects that you created.
    Run Program with Formatted Date Time Condition

Author: Stephen Withrow

Stephen has over 30 years' experience in training, development, and consulting in a variety of technology areas including Java, C, C++, XML, JavaScript, AJAX, Tomcat, JBoss, Oracle, and DB2. His background includes design and implementation of business solutions on client/server, Web, and enterprise platforms. Stephen is a published writer in both technical and non-technical endeavors. Stephen received an undergraduate degree in Computer Science and Physics from Florida State University.