首页 > 编程语言 > Java8中 LocalDate和java.sql.Date的相互转换操作
2020
12-07

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

一、简述

首先,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

补充知识:java中foreach循环的注意事项

简单的ArrayList小例子:

 List<Integer> list = new ArrayList<>();
 list.add(1);
 list.add(2);
 list.add(3);
 for (Integer integer : list) {
  System.out.println(integer);
 }

PS: Collection接口的类型都没有使用foreach.

主要注意事项:

1.用法就很简单,java5的特性.原理是:迭代器遍历(分析方法:字节码工具javap).ps:遍历链表的时候效率会更高一些.

2.如果list=null时,会抛出java.lang.NullPointerException异常.切记,使用前要new一下.

3.foreach循环只能用于读取,不能改变对应的值.不然会抛出java.util.ConcurrentModificationException异常.

以上这篇Java8中 LocalDate和java.sql.Date的相互转换操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持自学编程网。

编程技巧