java
java.sql.Date是为了配合SQL DATE而设置的数据类型。“规范化”的java.sql.Date只包含年月日信息,时分秒毫秒都会清零。格式类似:YYYY-MM-DD。当我们调用 ResultSet的getDate()方法来获得返回值时,java程序会参照"规范"的java.sql.Date来格式化数据库中的数值。因此,如果数据库中存在的非规范化部分的信息将会被劫取。
java.util.Date 是 java.sql.Date 的父类(注意拼写)
前者是常用的表示时间的类,我们通常格式化或者得到当前时间都是用他
后者之后在读写数据库的时候用他,因为PreparedStament的setDate()的第2参数和ResultSet的getDate()方法的第2个参数都是java.sql.Date
转换是
java.sql.Date date=new Java.sql.Date();
java.util.Date d=new java.util.Date (date.getTime());
反过来是一样的
继承关系:java.lang.Object --》 java.util.Date --》 java.sql.Date
具体的转换关系就是java.util.Date d=new java.util.Date (new Java.sql.Date());
java.sql.Date 是针对SQL语句使用的,它只包含日期而没有时间部分
时间字段的读取与数据库中的表结果的关系很紧密:
1,如果数据库中是datetime类型,那么如果应用getString("writerDate") 有小时,分钟,秒
2,如果数据库中是datetime类型,那么如果应用getDate("writerDate") 没有小时,分钟,秒
3,如果数据库中是datetime类型,那么如果应用getTimestamp("writerDate")有小时,分钟,秒
4,如果数据库中是String类型,那么如果应用getTimestamp("writerDate") 报错
5,如果数据库中是String类型,那么如果应用getString("writerDate") 有小时,分钟,秒
6,如果数据库中是String类型,那么如果应用getDate("writerDate") 报错