继承关系
java.lang.Object
---- java.util.Date
----java.sql.Date
java.sql.Date
java.sql.Time
java.sql.Timestamp
这三个都是java.util.Date的子类
java.util.Date 时间格式: 年-月-日 时:分:秒.毫秒
java.sql.Date 时间格式:年-月-日
java.sql.Time 时间格式: 时:分:秒
java.sql.Timestamp 时间格式: 年-月-日 时:分:秒
java.sql.Date是java.util.Date的子类,与数据库Date相对应的一个类型,而java.util.Date是纯java的Date。
java.sql.Date是规范化之后的时间,其时分秒部分被截取掉了。
java.sql.Date是为了配合SQL DATE而设置的数据类型。“规范化”的java.sql.Date只包含年月日信息,时分秒毫秒都会清零。格式类似:YYYY-MM-DD。
在数据库中插入带时分秒的时间需要使用java.sql.Timestamp
String str = "2014-03-02 08:12:12";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
java.util.Date date= sdf.parse(s);
java.sql.Timestamp st = new java.sql.Timestamp(date.getTime());
//设置数据库值
pstmt.setTimestamp(1, new java.sql.Timestamp(Calendar.getInstance().getTime().getTime())); //当前时间
java.util.Date是在除了SQL语句的情况下面使用的。
java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分。
在读写数据库的时候使用,PreparedStament的setDate()的第2参数和ResultSet的getDate()方法的第2个参数都是java.sql.Date。
java.sql.Date转为java.util.Date
java.sql.Date date=new java.sql.Date();
java.util.Date d=new java.util.Date (date.getTime());