为了账号安全,请及时绑定邮箱和手机立即绑定

以不同格式传递给控制器​​的输入类型日期

以不同格式传递给控制器​​的输入类型日期

繁花不似锦 2021-12-30 17:24:05
我正在想办法解决 Input type=date 问题。我知道输入显示在浏览器中有所不同,以澄清我为此使用谷歌浏览器的事情。所以我的简单表格是这样的:<input type="date" name="startingdate" class="form-control" id="startingdate"/>我的控制器是这样的:public ModelAndView getDate(@FormParam("startingdate") String startingdate) {        System.out.println(startingdate);}chrome 中显示的格式mm/dd/yyyy正是我想要的格式,但是当我以字符串格式从 html 获取值到我的控制器时,它突然变成了yyyy-mm-dd.作为一个例子,当我输入时09/11/2018,它变成2018-11-09了控制器,并在将它传递到我的数据库时变成0011-08-18. 在我的控制器获取日期值之前,有没有其他方法可以修复格式,而无需更改数据库上的日期格式或使用 simpledateformat 进行解析?我的印象是这只是格式的错误,但如果我完全错过了什么,我愿意接受建议。谢谢!更新:实际问题出在起始日期的后端解析上,它完全在我的眼皮底下。使用以下方法修复了问题:SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");    java.util.Date startingdateparsed = format.parse(startdate);    java.sql.Date startdatingparse = new java.sql.Date(startingdateparsed.getTime());感谢您的时间和见解!
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

有在所述显示格式和差的实际value一个的date在HTML5领域。(也见这个问题)。

所以没有办法改变浏览器发送的格式,因为它严格定义为yyyy-MM-dd. 显示基于浏览器的区域设置。

简而言之,将您的后端更改为始终解析yyyy-MM-dd而不是您现在所期望的。



查看完整回答
反对 回复 2021-12-30
  • 1 回答
  • 0 关注
  • 130 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信