java Date转换成sql Date出现时间错误的问题

        SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd");
        java.util.Date d = null;
        d = format.parse(newsDate);
 java.sql.Date date = new java.sql.Date(d.getTime());

 代码是这样的。

 java Date数据格式是 2015-10-08 09:21:33
 但是转成sql Date后变成了2014-01-08

 这是何故

可以试试用Datetime , Date只表示日期但不表示时间而Datetime即表示日期又表示时间

"yyyy-mm-dd"改成"yyyy-MM-dd"
mm是分钟,MM才是年

yyyy-mm-dd"改成"yyyy-MM-dd HH:mm:ss"

java.sql.Date a=new java.sql.Date(1444358746000L);
java.sql.Date b=new java.sql.Date(1444358747000L);
java.util.Date c=new java.util.Date(1444358746000L);
java.util.Date d=new java.util.Date(1444358747000L);
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
这样不难看出java.util.Date 是精确到秒,而 java.sql.Date只能到日。

补充一下,可以将java.util.Date时间转换为1444358747000L(时间戳),在数据库的sql语句中将时间戳转换成包含秒的时间。