首先java.sql.Date,java.sql.Time和java.sql.Timestamp三个都是java.util.Date的子类(包装类)
java.sql.Date is not a real date
java.sql.Date stores only date information, not times. Simply converting a java.util.Date into a java.sql.Date will silently set the time to midnight. So, to store date/times to be manipulated as java.util.Date objects, don’t do this:
java.sql.date只存储日期信息,没有时间。简单地将转化为指定格式为java.sql.date会默默地设定时间到午夜。因此,存储日期/时间被操纵的对象转化为指定格式,不要这样: //bug 丢失时间信息 preparedStatement.setDate(1, new java.sql.Date(date.getTime())); do this 应该这样做 preparedStatement.setTimestamp(1, new java.sql.Timestamp(date.getTime()));
java.sql.Timestamp extends java.util.Date 但它不应该被用来作为一个日期。在JDK 1.3.1,时间戳。gettime()(继承日期)返回时间最近的第二只,但JDK 1.4.2和JDK 1.5返回时间最近的毫秒的预期。