gpt4 book ai didi

java - 输入类型日期以不同的格式传递给 Controller

转载 作者:行者123 更新时间:2023-11-29 16:44:38 26 4
gpt4 key购买 nike

我正在尝试找出解决输入类型=日期的方法。我知道浏览器中的输入显示有所不同,为了澄清我在这方面使用 Google Chrome 的情况。所以我的简单形式是这样的:

<input type="date" name="startingdate" class="form-control" id="startingdate"/>

我的 Controller 是这样的:

public ModelAndView getDate(@FormParam("startingdate") String startingdate) {
System.out.println(startingdate);
}

chrome 中显示的格式是 mm/dd/yyyy 这是我想要的,但是当我以字符串格式从 html 获取值到我的 Controller 时,它突然变成 yyyy -mm-dd

举个例子,当我输入 09/11/2018 时,它在 Controller 中变成 2018-11-09 ,并将其传递到我的数据库后,它变成 0011-08-18。在我的 Controller 获取日期值之前,是否有其他方法可以修复格式,而无需更改数据库上的日期格式或使用 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());

感谢你们的宝贵时间和见解!

最佳答案

HTML5 中日期 字段的显示格式与实际存在差异。 (另请参见this question)。

因此,无法更改浏览器发送的格式,因为该格式严格定义为yyyy-MM-dd。显示基于浏览器区域设置。

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

关于java - 输入类型日期以不同的格式传递给 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53151379/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com