天天看点

java.util.Date转化为java.sql.Date出现时间错误

在mysql中用到了date类型,对应的java类型就是java.sql.Date,但是java.sql.Date的生成需要对java.util.Date类型进行转换,在转换的过程中发现出现了错误,两边不一致

SimpleDateFormat sdf =new SimpleDateFormat("yyyy-mm-dd");
        Date stDate=sdf.parse(sDate);                 //入住日期
        java.sql.Date startDate=new java.sql.Date(stDate.getTime());
        Date enDate=sdf.parse(eDate);                  //离开日期
        java.sql.Date endDate=new java.sql.Date(enDate.getTime());
       System.out.println(sDate);      

控制台输出结果:

这个错误其实不是什么大错误,日期格式中“mm”表示的是秒,表示月份要用“MM”:

SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
        System.out.println("string:"+sDate);
        Date stDate=sdf.parse(sDate);                 //入住日期
        System.out.println("util.Date:"+stDate);
        java.sql.Date startDate=new java.sql.Date(stDate.getTime());
        System.out.println("sql.Date:"+startDate);
        Date enDate=sdf.parse(eDate);                  //离开日期
        java.sql.Date endDate=new java.sql.Date(enDate.getTime());      

这样就没问题了。

java.util.Date转化为java.sql.Date出现时间错误