在这篇文章中,我们将看到如何在Java中把LocalDate转换为Instant。
Java的LocalDate转Instant
Instant 类提供了一个瞬时的时间点。当你想把LocalDate转换为Instant时,你需要提供时区。
使用toInstant()和ZoneId
ZoneDateTime的toInstant() 方法可以用来将LocalDate转换为Instant。在进行转换之前,你需要提供ZoneId 。
- 用以下方法获得
LocalDate对象LocalDate.now() - 基于Locale创建
ZoneId实例 - 将
ZoneId传给LocalDate'satStartOfDay(),以获得ZoneDateTime。 - 使用
ZoneDateTime'stoInstant()方法,在Java中把LocalDate转换为Instant。
如果你想拥有默认的时区,你可以使用ZoneId.systemDefault() 。它将为你提供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);
}
}
输出。
Instant obj: 2022-02-16T18:30:00Z
使用ZoneOffset的toInstant()方法
你可以向ZoneDateTime的toInstant() 方法传递ZoneOffset ,在Java中把LocalDate转换为Instant。
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);
}
}
输出。
即时obj:2022-02-17T00:00:00Z
以上就是关于如何在Java中把LocalDate转换为Instant的全部内容。