java.util.Date 与 java.sql.Date 相关知识点解析
问:java.sql.Date 和 java.util.Date 有什么区别?
答:这两个类的区别是 java.sql.Date是针对 SQL 语句使用的,它只包含日期而没有时间部分,一般在读写数据库时用。java.util.Date 是在除了 SQL 语句外的所有情况下使用的,一般是日常日期字段。java.util.Date 是 java.sql.Date 的父类。唯一的相同点就是都有 getTime 方法返回毫秒数(因为继承了util下的getTime 方法)。代码解释所示:
public class DateShow { public static void main(String[] args) { java.util.Date nowUtil = new java.util.Date(); java.sql.Date nowSql = new java.sql.Date(System.currentTimeMillis());//需要传参 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(format.format(nowUtil)); System.out.println(format.format(nowSql)); System.out.println(nowUtil); System.out.println(nowSql); } }
/** 运行结果如下: 2018-06-08 17:33:06 2018-06-08 17:33:06 Fri Jun 08 17:33:06 CST 2018 2018-06-08 */
之所以直接打印 Date 对象表现的值不一样就是上面解释的部分,是指是调用了各自 Date 的 toString() 方法,两个 Date 对象分别有自己的 toString() 重写实现,感兴趣的可以打开源码对比一下就明白了。