Java 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 方法返回毫秒数。代码解释所示:

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() 重写实现,感兴趣的可以打开源码对比一下就明白了。

你可能感兴趣的:(Java java.util.Date 与 java.sql.Date)