Tech and Media Labs
This site uses cookies to improve the user experience.




Java DateTimeFormatter

Jakob Jenkov
Last update: 2015-07-03

The Java DateTimeFormatter class is used to parse and format dates represented with the classes in the Java 8 date time API. The DateTimeFormatter is located in the java.time.format package so the fully qualified class name is java.time.format.DateTimeFormatter.

Predefined DateTimeFormatter Instances

The DateTimeFormatter class contains a set of predefined (constant) instances which can parse and format dates from standard date formats. This saves you the trouble of defining a date format for a DateTimeFormatter. The DateTimeFormatter class contains the following predefined instances:

BASIC_ISO_DATE

ISO_LOCAL_DATE
ISO_LOCAL_TIME
ISO_LOCAL_DATE_TIME

ISO_OFFSET_DATE
ISO_OFFSET_TIME
ISO_OFFSET_DATE_TIME

ISO_ZONED_DATE_TIME

ISO_INSTANT

ISO_DATE
ISO_TIME
ISO_DATE_TIME

ISO_ORDINAL_TIME
ISO_WEEK_DATE

RFC_1123_DATE_TIME

Each of these predefined DateTimeFormatter instances are preconfigured to format and parse dates to / from different formats. I will not explain all of these predefined DateTimeFormatter instances. You can read about them in the JavaDoc for the DateTimeFormatter class. But I will explain a few of them so you get an idea about what they do.

Formatting a Date

Once you have an instance of a DateTimeFormatter you can format a date using its format() method. Here is a DateTimeFormatter format() example:

DateTimeFormatter formatter = DateTimeFormatter.BASIC_ISO_DATE;

String formattedDate = formatter.format(LocalDate.now());
System.out.println(formattedDate);

This example formats a LocalDate instance. An example output from this code could be:

20150703

This output represents the year 2015, month 07 (July) and day 03 (third).

Here is an example of formatting a ZonedDateTime instance:

DateTimeFormatter formatter = DateTimeFormatter.BASIC_ISO_DATE;

String formattedZonedDate = formatter.format(ZonedDateTime.now());
System.out.println("formattedZonedDate = " + formattedZonedDate);

The output from this example would look like this:

20150703+0200

This output represents the year 2015, month 7 (July) and day 3 (third) in the time zone UTC+2 .

Jakob Jenkov




Copyright  Jenkov Aps
Close TOC