How to format an instant to a String in Java

In this tutorial, we will learn about how to format an instant to a String in Java. First, we have to know what is instant in Java. So an instant is a measured timestamp or we can say that Java Instant Class is used to represent a specific moment in the timeline.

We can Format the instant into string using Core Java and there are some methods for this –

How to format an instant to a String in Java

Format an instant using DateTimeFormatter class

In Java, the DateTimeFormatter class, introduced in Java 8, provides a powerful way to format dates, times, and instants into strings. An instant represents a point in time on the timeline in the UTC time zone.

To format an instant to a string, you can follow these steps:

( 1 ) Import the required classes

import java.time.Instant;
import java.time.format.DateTimeFormatter;

( 2 ) Create an instance of the DateTimeFormatter class, specifying the desired format pattern

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

The pattern consists of various symbols that represent different elements of the date and time. For example, yyyy represents the year, MM represents the month, dd represents the day, HH represents the hour in 24-hour format, mm represents the minute, and ss represents the second

( 3 ) Obtain the instant representing the desired point in time

Instant instant = Instant.now(); // or provide your own Instant instance

( 4 ) Format the instant using the format() method of the DateTimeFormatter class

String formattedInstant = formatter.format(instant);

The format() method takes the instant as an argument. It returns a string representation of the formatted instant based on the specified pattern.

Example :

import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public class InstantFormattingExample {
    public static void main(String[] args) {
        // Create an Instant representing the current time
        Instant instant = Instant.now();

        // Convert the Instant to ZonedDateTime using the system's default time zone
        ZonedDateTime zonedDateTime = instant.atZone(ZoneId.systemDefault());

        // Define the desired date-time format
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

        // Format the ZonedDateTime to a String using the formatter
        String formattedInstant = formatter.format(zonedDateTime);

        // Print the formatted Instant
        System.out.println("Formatted Instant: " + formattedInstant);
    }
}


Output :

Formatted Instant: 2023-07-27 15:30:22

This program imports the necessary classes: Instant from the java.time package and DateTimeFormatter from the java.time.format package.

We then create an Instant object representing the current time using Instant.now().

Next, we define the desired date-time format using the DateTimeFormatter.ofPattern() method. In this example, the format is set to “yyyy-MM-dd HH:mm:ss”, which represents the year, month, day, hour, minute, and second in a specific order.

We format the Instant object to a String using the format() method of the DateTimeFormatter class, passing in the Instant object as the argument.

Finally, we print the formatted Instant using System.out.println().

When you run the program, it will display the current time formatted according to the specified pattern

Format an instant by using toString() method

When working with dates and times in Java, the Instant class from the “java.time” package represents a moment in time. In Java, you can format an Instant object to a string using the toString() method, which returns a string representation of the instant in the ISO-8601 format.

The ISO-8601 format represents dates and times in a standardized way, making them easily readable and exchangeable across different systems. It follows the pattern “yyyy-MM-ddTHH:mm:ss.SSSZ”, where:

  • yyyy represents the four-digit year.
  • MM represents the two-digit month (01 for January, 02 for February, and so on).
  • dd represents the two-digit day of the month.
  • T is a literal character indicating the start of the time portion.
  • HH represents the two-digit hour in 24-hour format.
  • mm represents the two-digit minute.
  • ss represents the two-digit second.
  • SSS represents the three-digit milliseconds.
  • Z represents the time zone offset in the form “+HH:mm” or “-HH:mm”.

Example :

import java.time.Instant;

public class InstantToStringExample {
    public static void main(String[] args) {
        // Create an Instant object representing the current moment
        Instant instant = Instant.now();

        // Format the Instant to a string using toString()
        String formattedString = instant.toString();

        // Print the formatted string
        System.out.println("Formatted Instant: " + formattedString);
    }
}


Output :

Formatted Instant: 2023-06-27T18:40:02.080176Z

In this example, we create an Instant object using the now() method, which returns the current moment in time. Then, we call the toString() method on the instant object to obtain the string representation of the instant. Finally, we print the formatted string to the console.

By using the toString() method on an Instant object in Java, you can easily convert the instant to a string representation in the ISO-8601 format. This format ensures consistency and interoperability when working with dates and times across different systems and applications.

Discover Our Exciting Courses and Quiz

Enroll now to enhance your skills and knowledge!

Java Online Quiz

Level up your coding skills with our interactive programming quiz!