📜  java 将 java.util.Date 转换为 LocalDate - Java (1)

📅  最后修改于: 2023-12-03 15:31:33.652000             🧑  作者: Mango

Java 将 java.util.Date 转换为 LocalDate

在 Java 8 中,引入了新的日期/时间 API,其中包括 LocalDate 和 java.util.Date 之间的相互转换。本文将向您展示如何将 java.util.Date 转换为 LocalDate。

方法 1:使用 LocalDate 的 from() 方法

使用 LocalDate 的 from() 方法,我们可以将 java.util.Date 转换为 LocalDate,如下所示:

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

public class DateToLocalDateExample {
    public static void main(String[] args) {
        Date date = new Date();
        Instant instant = date.toInstant();
        LocalDate localDate = instant.atZone(ZoneId.systemDefault()).toLocalDate();
        System.out.println("Date : " + date);
        System.out.println("LocalDate : " + localDate);
    }
}

上述代码将获取当前日期并将其转换为 Instant 类型。接下来,我们在此基础上使用 atZone() 和 toLocalDate() 方法创建一个 LocalDate。

运行上述程序,将输出以下结果:

Date : Thu Feb 11 10:08:08 PST 2021
LocalDate : 2021-02-11
方法 2:使用 LocalDate 的 parse() 方法

我们还可以使用 LocalDate 的 parse() 方法将 java.util.Date 转换为 LocalDate,如下所示:

import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Date;

public class DateToLocalDateExample {
    public static void main(String[] args) {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String stringDate = sdf.format(date);
        LocalDate localDate = LocalDate.parse(stringDate, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        System.out.println("Date : " + date);
        System.out.println("LocalDate : " + localDate);
    }
}

上述代码将首先获取当前日期并将其格式化为字符串。接下来,我们使用 LocalDate 的 parse() 方法创建一个 LocalDate。

运行上述程序,将输出以下结果:

Date : Thu Feb 11 10:29:24 PST 2021
LocalDate : 2021-02-11
结论

在 Java 8 中,将 java.util.Date 转换为 LocalDate 可以通过使用 LocalDate 的 from() 方法或 parse() 方法实现。这两种方法都很容易实现,具有相同的效果。您可以根据编码风格和项目需求选择其中一种方法。