我要将String日期从表单数据更改为java Date格式,因为我将其传递给一个类,并在以后制作该类的对象进行存储。
这是我的代码
表单文件
<hr>
<label for="firstname"><b>First Name</b></label>
<input type="text" placeholder="Enter First Name" name="FirstName" required>
<label for="middlename"><b>Middle Name</b></label>
<input type="text" placeholder="Enter Middle Name" name="MiddleName" required>
<label for="lastname"><b>Last Name</b></label>
<input type="text" placeholder="Enter Last Name" name="LastName" required>
<label for="email"><b>Email</b></label>
<input type="text" placeholder="Enter Email" name="Email" required>
<label for="dob"><b>Enter Date of birth</b></label><br/>
<input type="date" name="DOB" required><br/><br/>
jsp重定向文件
<%
Employee obj = new Employee();
obj.setFirstName(request.getParameter("FirstName"));
obj.setMiddleName(request.getParameter("MiddleName"));
obj.setLastName(request.getParameter("LastName"));
//obj.setDob((String)request.getParameter("dob"));
//**I wanna set the date here......**
obj.setFirstName(request.getParameter("FirstName"));
%>
我该如何解决这个问题。我目前正在构建Spring MVC网络应用。
任何建议或帮助都将受到赞赏。 谢谢你也一样。
答案 0 :(得分:0)
我认为最简单的方法是最好的,请尝试:
Date date1 = new SimpleDateFormat("dd/MM/yyyy").parse((String)request.getParameter("dob"));
答案 1 :(得分:0)
您应该考虑使用Java的新LocalDate
及其parse
方法。 this article中对使用它进行了很好的描述。
如果您确实需要Date
,则可以从生成的LocalDate
中获取它:
Date date = Date.from(localDate.toInstant());
答案 2 :(得分:0)
为此的通用解决方案是使用Spring内置注释@InitBinder
,以便完整控制器中的所有日期都将自动转换为所需的格式。您不必手动逐字段解析。
@InitBinder
public final void initBinder(final WebDataBinder binder, final Locale locale) {
final SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy", locale);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}
请参阅此线程以更清楚地了解InitBinder。