共同点:都有getTime方法返回毫秒数,可以直接构建
不同点:
1、java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分,一般在读写数据库的时候用,PreparedStament的setDate()的参数和ResultSet的getDate()方法的都是java.sql.Date
2、java.util.Date是在除了SQL语句的情况下面使用,一般是日常日期字段
3、java.util.Date 是 java.sql.Date 的父类,
即:继承关系:java.lang.Object --》 java.util.Date --》 java.sql.Date
举例说明:
public static void main(String[] args) {
java.util.Date utilDate=new Date();
System.out.println( "utilDate:"+utilDate);
java.sql.Date sqlDate=new java.sql.Date(utilDate.getTime());
System.out.println("sqlDate : " +sqlDate);
java.sql.Time sTime=new java.sql.Time(utilDate.getTime());
System.out.println("sTime : " +sTime);
java.sql.Timestamp stp=new java.sql.Timestamp(utilDate.getTime());
System.out.println("stp:"+stp);
System.out.println("====");
SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println("utilDate format : "+ f.format(utilDate) );
System.out.println("stp format : "+ f.format(stp) );
System.out.println("sTime format : "+ f.format(sTime) );
System.out.println("sqlDate format : "+ f.format(sqlDate) );
}
上面的输出结果为:
utilDate:Fri Oct 25 09:49:49 CST 2019
sqlDate : 2019-10-25
sTime : 09:49:49
stp:2019-10-25 09:49:49.327
====
utilDate format : 2019-10-25 09:49:49
stp format : 2019-10-25 09:49:49
sTime format : 2019-10-25 09:49:49
sqlDate format : 2019-10-25 09:49:49
可知:
java.sql.Date - 年月日
java.sql.Time 时分秒
java.sql.Timestamp 年月日 时分秒 经过 SimpleDateFormat 定制格式化之后. 都可展示对应的年月日是分秒.