How to Get Current DateTime in Java with Format (yyyy-MM-dd HH:mm:ss.SSS)

Published Jul 4, 2022

How can we obtain the current datetime in Java, following this format: yyyy-MM-dd HH:mm:ss.SSS?

1. Using Java 8’s LocalDateTime

We can use and a DateTimeFormatter to obtain the current datetime string with a custom format.

String getCurrentDateTime() {
  DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");

2. Using Instant

We can do the same with with some string replacements.

String getCurrentDateTime() {
  String instant =; // 2022-07-04T12:12:12.121Z
  return instant.replace("T", " ").replace("Z", "");

3. Using SimpleDateFormat

Prior to Java 8, using SimpleDateFormat with new Date() was a great, simple option.

String getCurrentDateTime() {
  return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date());

Keep in mind that SimpleDateFormat is not thread-safe.