birthday

birthday

birthday的数据类型为字符串,在前台修改用户生日后怎么在servlet中设置用户生日

出现这种异常,怎么解决?
java.lang.IllegalArgumentException: Cannot format given Object as a Date
java.text.DateFormat.format(DateFormat.java:310)
java.text.Format.format(Format.java:157)
com.web.action.UserServlet.update(UserServlet.java:51)
UserServlet.java:51为:user.setBirthday(sdf.format(birthday));

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕阿慧 2020-09-28 15:03:48

同学你好,同学可以截取字符串"19980809",拼接成yyyy-MM-dd格式。参考代码如下:

http://img1.sycdn.imooc.com//climg/5f718c9c098098ce09840441.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕阿慧 2020-09-27 17:59:53

同学你好,根据错误信息Cannot format given Object as a Date,不能将Object对象转换为Date类型。调用format()方法需要传入的参数类型为Date,如果同学传入的是String类型就会报这个错误。

同学可以将用户类中birthday属性设置为String类型,将数据库中用户表的birthday列设置为varchar类型。

在Servlet中,同学可以使用String类型接收birthday数据。

例如:

String newBirthday = request.getParameter("birthday");

设置用户生日时直接传入接收的birthday数据。

例如:

user.setBirthday(newBirthday);

如果问题没有解决,建议同学贴一下用户类和前端用户表单代码,方便老师检查。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


  • 提问者 慕小白200903 #1
    有没有办法让字符串类型的时间转换成日期类型的, 按你这种如果修改birthday="19980809",保存的日期也是19980809,怎么变成 1998-08-09 00:00:00
    2020-09-28 14:20:15
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师