如何在Java中把LocalDate转换为Instant

223 阅读1分钟

在这篇文章中,我们将看到如何在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的全部内容。