这个问题在这里已经有答案了:
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_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"
1条答案
按热度按时间ybzsozfc1#
这种情况下的具体错误是错误的日期格式。而不是
MM/dd/yyyy
你应该使用yyyy-MM-dd
以便分析日期。如果无法解析日期
null
插入到数据库中,这是正常的。这意味着日期的格式是错误的。下面是一段代码,可以解析日期: