在java中把java.sql.date转换为Localdate/从Localdate转换为java.sql.date的3种方法:例子

341 阅读1分钟

java.sql.Date是一个日期类,用于存储日期、时间和时区信息。

LocalDate只存储日期,没有时间和时区信息。这个简短的教程讲述了如何在java中把sql date转换为/从localdate中转换,并附有例子。

LocalDate有valueOf ,可以转换为sql日期。

import java.sql.Date;
import java.time.LocalDate;

public class Main {

    public static void main(String[] args) {

        LocalDate localDate = LocalDate.of(2020, 07, 27);
        System.out.println(localDate); //2020-07-27
        Date sqlDate = Date.valueOf(localDate);
        System.out.println(sqlDate); //2020-07-27
    }
}

我们可以通过多种方式将sql日期转换为LocalDate

  • 使用toInstant()方法

  • 创建java.util.Date对象来获取当前日期

  • 使用默认区域的toInstant方法将currentDate转换为LocalDate。

Date currentDate = new Date(System.currentTimeMillis());
LocalDate current = currentDate.toInstant()
            .atZone(ZoneId.systemDefault()) 
            .toLocalDate();

java.sql.Date有toLocaleDate方法,返回LocalDate对象。

这是一个简单的例子

import java.sql.Date;
import java.time.LocalDate;

public class Main {

    public static void main(String[] args) {
        Date currentDate = new Date(System.currentTimeMillis());
        System.out.println(currentDate);
        LocalDate ld=currentDate.toLocalDate();
        System.out.println(ld);
    }
}