首先看下java.sql.Date类的相关类图:
可以看到java.sql.Date是java.util.Date的子类
接下来写个测试代码,看下java.sql.Date和java.util.Date两个类如何使用,以及使用的区别
代码如下:
public class TestUtil {
public static void main(String[] args) {
//输出java.util.Date类
Date date = new Date();
System.out.println(date);
//构造并输出java.sql.Date类
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
System.out.println(sqlDate);
//java.sql.Date自动转型java.util.Date
Date utilDate = sqlDate;
System.out.println(utilDate);
}
}
结果如下:
这里根据结果做个总结:
一.java.sql.Date是java.util.Date的子类
二.java.sql.Date类没有时分秒,只有年月日
三. java.util.Date类转java.sql.Date类,向下转型,需要调用java.util.Date类的getTime()方法,取得long类型返回值,作为参数转换。
四.java.sql.Date类转java.util.Date类,向上转型,会自动转换,但是数值我们可以很明显的看到,也没有了时分秒。
五.具体使用根据业务需求决定,有的业务时间不要精确到时分秒,有的需要,根据需求使用相应的时间类。