Java8中 LocalDate和java.sql.Date的相互转换

时间:2021-01-13 22:05:56

一.简述

首先,Java 8引入了java.time.LocalDate来表示一个没有时间的日期。

其次,使用Java 8版本,还需要更新java.sql.Date,以便为LocalDate提供支持,包括toLocalDate和valueOf(LocalDate)等方法。

二.java.time.LocalDate转换为java.sql.Date

java.sql.Date.valueOf( localDate )
package insping;

public class Test {

public static void main(String[] args) {

java.time.LocalDate date = java.time.LocalDate.now();
System.out.println("java.time.LocalDate = " + date);

java.sql.Date sqlDate = java.sql.Date.valueOf(date);
System.out.println("java.sql.Date = " + sqlDate);
}
}

结果:

java.time.LocalDate = 2017-06-16
java.sql.Date = 2017-06-16

三.java.sql.Date转换为java.time.LocalDate

sqlDate.toLocalDate()
public class Test {

public static void main(String[] args) {

java.sql.Date sqlDate = java.sql.Date.valueOf("2017-06-16");
System.out.println("java.sql.Date = " + sqlDate);

java.time.LocalDate localDate = sqlDate.toLocalDate();
System.out.println("java.time.LocalDate = " + localDate);

}
}

结果:

java.sql.Date = 2017-06-16
java.time.LocalDate = 2017-06-16