区别:
1. 主要是精度不一样
//代码
java.sql.Date sqlDate = new java.sql.Date(new Date().getTime());
Time time = new Time(new Date().getTime());
Timestamp timestamp = new Timestamp(new Date().getTime());
System.out.println(sqlDate.toString());
System.out.println(time.toString());
System.out.println(timestamp.toString());
//输出
2018-08-11
20:01:10
2018-08-11 20:01:10.287
- Timestamp和java.util.Date区别
注意:此类型是java.util.Date和单独的纳秒值的组合。只有整数秒存储在java.util.Date组件中。分数秒 - 纳米 - 是分开的。传递一个不是java.sql.Timestamp实例的对象时,Timestamp.equals(Object)方法永远不会返回true,因为日期的nanos组件是未知的。因此,Timestamp.equals(Object)方法与java.util.Date.equals(Object)方法不对称。此外,hashCode方法使用底层的java.util.Date实现,因此在其计算中不包含nanos。
由于Timestamp类和上面提到的java.util.Date类之间存在差异,因此建议代码不要将Timestamp值一般视为java.util.Date的实例。 Timestamp和java.util.Date之间的继承关系实际上表示实现继承,而不是类型继承。