11

我有这么输入

 <input type="date"  name="date">

如何从此输入读取类 java.util.Date 的 java 对象?

PS Date date 是我的 Bean 的一个字段,我是这样读的:

@RequestMapping("/updateVacancy")
    public String updateVacancy(@ModelAttribute("vacancy") Vacancy vacancy){
        vacancyService.update(vacancy);
        return "VacancyDetails";
    }
4

4 回答 4

6

您可能会收到文本形式的日期,然后将其解析为 java.util.Date

例如像这样

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date parsed = format.parse(date);

您还应该检查收到的值是否与您所需的格式相对应。

于 2013-08-22T12:14:31.580 回答
0

规范说:

值 = 日期

表示日期的字符串。[RFC 3339] 中定义的有效完整日期,附加条件是年份部分是四位或更多位,表示大于 0 的数字。

例子:

1996-12-19

所以你必须根据这种格式解析参数值。在服务器端,您将获得参数值,就好像该字段是文本类型的输入一样,并且它的值是使用该yyyy-MM-dd模式格式化的日期。

于 2013-08-22T11:07:09.227 回答
0

什么对我有用:

  1. 在 DTO 对象中,与 HTML 链接的变量被声明为 String;
  2. 当转移到最终的对象简单解析工作:
LocalDate localDateInFinalObject = LocalDate.parse(DateAsStringFromDTOObject)
于 2021-12-18T03:49:20.090 回答
0

正如这里所建议的,您应该在控制器中声明一个 @InitBinder 来处理从字符串中解析 Date 对象:

/* put this in your Controller */

@InitBinder
private void dateBinder(WebDataBinder binder) {
    //The date format to parse or output your dates
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
    //Create a new CustomDateEditor
    CustomDateEditor editor = new CustomDateEditor(dateFormat, true);
    //Register it as custom editor for the Date type
    binder.registerCustomEditor(Date.class, editor);
}
于 2018-08-01T12:59:54.417 回答