如何将 String 转换为 java.util.date 以使其可插入类型为 "DATE" 的 mysql 数据库列?

How to convert String to java.util.date so as to make it insertable to the mysql database column of type "DATE"?

用户输入的日期为 string,但我需要将该日期插入到数据类型为 DATE 的数据库列中。这就是我在 Event.java class:

中定义 startDate 变量的方式
@Column(name = "start_date")
@Temporal(javax.persistence.TemporalType.DATE)
private Date startDate;

Note: The Date datatype is from the class java.util.Date

用户输入这样的日期:

我在我的控制器中使用以下代码将该数据作为字符串值获取:

@RequestMapping(value = "/addEvent", method = RequestMethod.POST)
    public String addEvent(
            //OTHER PARAMETERS
            @RequestParam("startDate") String startDate,
            //OTHER PARAMETERS
                              ) {

        //CODE TO MAP EVENT DATA TO THE ENTITY CLASS
        eventDAO.insert(event);
        return "redirect:/";
    }

以上代码成功地将一个事件插入数据库,但留下了 start_dateNULL。如何将字符串值解析为 date 数据类型以便插入到 MySQL 数据库中?

编辑:

我尝试添加以下内容来解析它,但它仍然插入 NULL.

        Date finalStartDate=null;
        String startDateParser = startDate;
        DateFormat format = new SimpleDateFormat("MM/dd/yyyy");
        try{
        finalStartDate = format.parse(startDateParser);
        System.out.println(finalStartDate);
        } catch(ParseException ex){
            System.out.println(ex.getMessage());
        }

        Event event = new Event();
        //MAPPING OTHER DATA
        event.setStartDate(finalStartDate);

我在服务器中收到此消息:

Unparseable date: "2018-04-19"

本例中的具体错误是日期格式错误。您应该使用 yyyy-MM-dd 而不是 MM/dd/yyyy 来解析日期。

如果无法解析日期 null 插入数据库就可以了。这意味着日期格式错误。

这是一段代码,应该能够解析日期:

String startDateParser = "2018-04-19";
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date finalStartDate = null;
try {
    finalStartDate = format.parse(startDateParser);
    System.out.println(finalStartDate);
} catch (ParseException ex) {
    System.out.println(ex.getMessage());
}