Convert LocalDate to Instant in Java

Java LocalDate to Instant

In this article, we will see how to convert LocalDate to Instant in Java.

Java LocalDate to Instant

Instant class provides an instantaneous point in time. When you want to convert LocalDate to Instant, you need to provide time zone.

Using toInstant() wth ZoneId

ZoneDateTime’s toInstant() method can be used to convert LocalDate to Instant. You need to provide ZoneId before doing the conversion.

  • Get LocalDate object with LocalDate.now()
  • Create ZoneId instance based on the Locale
  • Pass ZoneId to LocalDate‘s atStartOfDay() to get ZoneDateTime.
  • Use ZoneDateTime‘s toInstant() method to convert LocalDate to Instant in Java.

If you want to have default timezone, you can use ZoneId.systemDefault(). It will provide you default timezone of JVM.

package org.arpit.java2blog;

import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneId;

public class JavaLocalDateToInstant {

    public static void main(String[] args) {
        // Get LocalDate object
        LocalDate date = LocalDate.now();

        // Get default timezone
        ZoneId zoneId = ZoneId.systemDefault();

        // Convert LocalDate to Instant using toInstant() method
        Instant instant = date.atStartOfDay(zoneId).toInstant();

        // Print Instant
        System.out.println("Instant obj: "+instant);
    }
}

Output:

Instant obj: 2022-02-16T18:30:00Z

Using toInstant() with ZoneOffset

You can pass ZoneOffset to ZoneDateTime’s toInstant() method to convert LocalDate to Instant in Java.

package org.arpit.java2blog;

import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneOffset;

public class JavaLocalDateToInstant {

    public static void main(String[] args) {
        // Get LocalDate object
        LocalDate localDate = LocalDate.now();

        // Convert LocalDate to Instant with ZoneOffSet
        Instant instant = localDate.atStartOfDay().toInstant(ZoneOffset.UTC);

        // Print Instant
        System.out.println("Instant obj: "+instant);
    }
}

Output:

Instant obj: 2022-02-17T00:00:00Z

That’s all about how to convert LocalDate to Instant in Java.

[social_share share_on="facebook,twitter,linkedin,whatsapp"][post_navigator in_same_term="true"]

Leave a Reply

Your email address will not be published. Required fields are marked *

Subscribe to our newletter

Get quality tutorials to your inbox. Subscribe now.