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

标签 java mysql hibernate spring-mvc date-parsing

用户输入日期为 string ,但我需要将其插入到数据类型 DATE 的数据库列中。这就是我定义我的startDate的方式我的变量 Event.java类:

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

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

用户输入日期如下: Date Input

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

@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_date栏目NULL 。如何将字符串值解析为 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());
}

关于java - 如何将 String 转换为 java.util.date 以便使其可插入 "DATE"类型的 mysql 数据库列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49924149/

相关文章:

Java TCP : How to abort/stop the receiver from waiting for sender data after timeout

mysql - 如何将 SQL 数据与 OR 条件混合

php - 在 MySQL 表的每一行上用 PHP 添加一个删除按钮

mysql - 统计SQL中出现的次数

java - HibernateCursorItemReader 结果集已经关闭

java - 如何让android编辑文本在开关关闭时不可编辑?

java - 读/写 txt 文件以保存

迁移到 WAS 8.5 和 java 1.7 后的 javax.naming.ConfigurationException

java - Hibernate 多对多映射,使用 PK 和额外列连接表

Spring JPA 存储库无法解析实体的属性