如何将 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_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());
}
用户输入的日期为 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 classjava.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"
本例中的具体错误是日期格式错误。您应该使用 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());
}