如何将字符串转换为java.util.date,使其可插入“date”类型的mysql数据库列?

eqqqjvef  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(441)

这个问题在这里已经有答案了

java字符串到日期转换(15个答案)
两年前关门了。
用户输入一个日期作为 string ,但我需要将其插入到datatype的数据库列中 DATE . 我就是这样定义我的 startDate 我的中的变量 Event.java 班级:

@Column(name = "start_date")
@Temporal(javax.persistence.TemporalType.DATE)
private Date startDate;

注:Date 数据类型来自类 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"
ybzsozfc

ybzsozfc1#

这种情况下的具体错误是错误的日期格式。而不是 MM/dd/yyyy 你应该使用 yyyy-MM-dd 以便分析日期。
如果无法解析日期 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());
}

相关问题