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
LocalDateobject withLocalDate.now() - Create
ZoneIdinstance based on the Locale - Pass
ZoneIdtoLocalDate‘satStartOfDay()to get ZoneDateTime. - Use
ZoneDateTime‘stoInstant()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
Further reading:
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.