How to Format Date and Time in the Java 8 Date/Time API
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.
- 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: LocalDateTime today=LocalDateTime.now(); 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: LocalTime timeNow=LocalTime.now(); 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: LocalDate dateToday=LocalDate.now(); 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. TheofPattern
method specifies the pattern. The pattern consists of characters that have a special meaning to the formatter. For example, a pattern ofMM
indicates that a two-digit month number is to be displayed (e.g., the month number of February is "02"). Patterns likeM
can imply a numeric value or a text value. If you specifyMMM
then the text value of the month abbreviation will be generated (e.g., "Feb"). A specification ofMMMM
would generate the complete month name (e.g., "February"). The E pattern applies to weekday names. CodingE
yields the first character of the weekday name (e.g., "W" for Wednesday). TheEEE
pattern results in the abbreviation of the weekday name (e.g., "Wed" for Wednesday). If you useEEEE
then the weekday name (e.g., "Wednesday") is generated.For time patterns, use
mm
for two-digit minute andss
for two-digit second. Thehh
pattern generates the two-digit hour for a 12-hour clock (e.g., 6PM is "06") andHH
generates the two-digit hour for a 24-hour clock (e.g., 6PM is "18"). Thea
requests "AM" (between midnight and noon) or "PM" (between noon and midnight). - Save your file as
FormattingDateAndTime.java
. - 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.
- 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.