java.util.Date与java.sql.Date

Posted 别离的岁月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java.util.Date与java.sql.Date相关的知识,希望对你有一定的参考价值。

java.util.date与java.sql.date

java.util.date是java.sql.date的父类,其中java.util.date用于除了数据库以外的任何地方。两者都有getTime的方法(获取long类型)。所以可以互相转换

java.sql.date date_sql = new java.sql.date(System.currentTime());
java.util.date date = new java,util.date(date_sql.getTime());

反过来转换也是一样的。
另一种转换时:

java.util.date date = new java.util.date(date_sql);//用子类创建父类

preparement中getDate()与setDate(datesql)中返回与传入的参数都是java.sql.date,所以要先进行转换

java.sql.date 没有无参的构造函数,必须传值,java.util.date可以使用无参构造函数,获取的是当前的时间

java.sql.date的时间格式是年-月-日,没有时间部分。
强制从datesql获取时分秒,会抛异常。
但是不代表没有时间部分的精度。

datesql.getTime() == date.getTime()   //true

两个对象都能进行格式化,使用类SimpleDateFormat

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd  hh:mm:ss");
java.util.Date date = new java.util.Date();
System.out.println(simpleDateFormat.formate(date));
java.sql.Date dateSql = new java.sql.Date(date.getTime());
System.out.println(simpleDateFormat.formate(dateSql));  // 通过format转换后可以显示时分秒

注:java.sql.date 通过格式化后可以显示时分秒,也就是他时分秒的精度并没有丢失




以上是关于java.util.Date与java.sql.Date的主要内容,如果未能解决你的问题,请参考以下文章

util.date和sql.date的衔接处理

java.util.Date null 与 ProGuard

java.util.Date和java.sql.Date的区别及应用

LocalDate与Date转化

java.util.Date和java.sql.Date以及System.currentTimeMillis()涉及到时间的问题

java.sql.Date和java.util.Date的区别