前端使用表单获取到日期之后在servlet中封装到对象的Date类型的成员变量中,当获取的时候需要从String转为Date类型,如下:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date birthday = null;
try {
birthday = format.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("获取到的生日:" + birthday);
java.util.Date默认的输出格式会是以下这种类型:
这里不需要担心,这里困惑了很久,怎么在插入到数据库表时变成yyyy-MM-dd的格式呢?
通过查看源码可以知道,这个输出方式只是java.util.Date中toString()定义的输出格式,我们将日期传到dao层中进行插入时还需要将java.util.Date类型转换为java.sql.Date类型,转换完成之后就会变成数据库所接受的yyyy-MM-dd的数据格式进行插入了。具体转换方法如下:
preparedStatement.setDate(4, new java.sql.Date(student.getBirthday().getTime()));
转换方式参考文章:
Java连接数据库错误:class java.util.Date cannot be cast to class java.sql.Date 日期转换错误
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)