Open In App

java.time.InstantSource Class in Java

Last Updated : 08 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

The java.time.Instant class in Java basically represents a point in time. It is a precise moment on the timeline of the Unix epoch. The Unix epoch is the time 00:00:00 UTC on 1 January 1970. The Instant class can be used to represent timestamps, durations, and intervals.

Instant values can be obtained from various sources including the clock time, network time, and database time. The Instant.now() is the method that returns the current instant from the system clock. This is useful for obtaining the current timestamp.

Example of obtaining the current timestamp using Instant.now()

Java




/*package whatever //do not write package name here */
  
import java.time.Instant;
  
public class InstantExample {
    public static void main(String[] args) {
        // Get the current instant
        Instant now = Instant.now();
        System.out.println("Current timestamp: " + now);
    }
}


Output:

Current timestamp: 2023-04-03T12:32:34.243715Z

In the addition to the Instant.now(), there are other ways to create Instant objects. For example, you can parse a string that represents an instant using the Instant.parse() method. Here’s an example:

Java




/*package whatever //do not write package name here */
  
import java.time.Instant;
  
public class InstantExample {
    public static void main(String[] args) {
        // Parse a string that represents an instant
        Instant instant = Instant.parse("2023-04-03T12:32:34.243715Z");
        System.out.println("Parsed timestamp: " + instant);
    }
}


Output:

Parsed timestamp: 2023-04-03T12:32:34.243715Z

You can also create an Instant object from a java.util.Date object using the Date.toInstant() method. Here’s an example:

Java




/*package whatever //do not write package name here */
  
import java.time.Instant;
import java.util.Date;
  
public class InstantExample {
    public static void main(String[] args) {
        
        // Create a Date object
        Date date = new Date();
  
        // Convert the Date object to an Instant
        Instant instant = date.toInstant();
  
        System.out.println("Instant from Date: " + instant);
    }
}


Output:

Instant from Date: 2023-04-03T12:32:34.244891Z

Instant objects are immutable, meaning that once an Instant object is created, its value not going to be changed. However, you can create a new Instant object based on an existing Instant object by using methods such as Instant.plus() and Instant.minus(). These methods return a new Instant object that is adjusted by the specified amount of time. For example:

Java




/*package whatever //do not write package name here */
  
import java.time.Instant;
import java.time.temporal.ChronoUnit;
  
public class InstantExample {
    public static void main(String[] args) {
        
        // Get the current instant
        Instant now = Instant.now();
        System.out.println("Current timestamp: " + now);
  
        // Add 1 hour to the current instant
        Instant oneHourLater = now.plus(1, ChronoUnit.HOURS);
        System.out.println("One hour later: " + oneHourLater);
  
        // Subtract 30 seconds from the current instant
        Instant thirtySecondsEarlier = now.minus(30, ChronoUnit.SECONDS);
        System.out.println("Thirty seconds earlier: " + thirtySecondsEarlier);
        
    }
}


Output:

Current timestamp: 2023-04-03T12:32:34.245917Z
One hour later: 2023-04-03T13:32:34.


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads