Getting Current Timestamp in Java

In Java, the timestamps are represented with the following classes:

  • java.time.Instant since Java 8
  • java.sql.Timestamp till Java 7

1. Get Current Timestamp with Instant

The Instant represents a unique point in the timeline and is primarily used to record event time-stamps in the application. It is an actual point in time, expressed using UTC – a universal time scale.

Instant instant = Instant.now();
  
System.out.println(instant);   //2022-02-15T08:06:21.410588500Z

2. java.sql.Timestamp (Java 7 or Earlier)

This legacy class has 2 methods to get the current timestamp.

Timestamp timestamp1 = new Timestamp(System.currentTimeMillis());

Date date = new Date();
Timestamp timestamp2 = new Timestamp(date.getTime());

System.out.println(timestamp1);     //2022-02-15 13:55:56.18
System.out.println(timestamp2);     //2022-02-15 13:55:56.18	

3. Instant vs ZonedDateTime

At a high level, Instant and ZonedDateTime classes seem similar but they are not.

  • ZonedDateTime is an actual point in time but in a specific timezone.
  • Instant is a point of time in UTC.

The value of Instant.now() will be exactly the same in all parts of the words at a time, while the value of ZonedDateTime.now() will be adjusted to the timezone value associated with the instance,

As a rule, consider using the Instant class for storing timestamp values in the database and passing between different applications. And use ZonedDateTime instance for displaying the information to the users in their specific timezones.

Happy Learning !!

Sourcecode Download

Leave a Reply

0 Comments
Inline Feedbacks
View all comments

About Us

HowToDoInJava provides tutorials and how-to guides on Java and related technologies.

It also shares the best practices, algorithms & solutions, and frequently asked interview questions.

Our Blogs

REST API Tutorial