java中前端传过来的时间字符串转为Date类型存入数据库

前端传过来的是属于字符串类型,java是无法拿来直接存入数据库的,数据库时间这的字段类型为timestamp

2020-07-07 10:45:57这种类型

这种属于yyyy-MM-dd HH:mm:ss,考虑使用java的工具SimpleDateFormat函数

String releaseDateTem=request.getParameter("releaseDateTem");
SimpleDateFormat formatter  = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date releaseDate = null;
try {
	releaseDate = formatter.parse(releaseDateTem);
} catch (ParseException e1) {
	// TODO Auto-generated catch block
	e1.printStackTrace();
}//string格式转Date格式

article.setReleaseDate(releaseDate);

2020-07-07这种类型

除了可以使用上面的方法以外,开可以使用java.sql.Date.valueOf

String releaseDateTem=request.getParameter("releaseDateTem");
//string格式转Date格式
java.sql.Date releaseDate = java.sql.Date.valueOf(releaseDateTem);
article.setReleaseDate(releaseDate);

这里需要注意的是java.sql.Date.valueOf参数只能是yyyy-mm-dd类型,否则可能会引起报错

java.lang.IllegalArgumentException
 at java.sql.Date.valueOf(Unknown Source)

分析是参数不合规定,sql.date类型装换出现问题。

关于java.sql.Date.Date.valueOf(String date);

其中date是表示"yyyy-MM-dd"的形式日期字符串。
以下是API的方法说明:
public static Date valueOf(String s)将 JDBC 日期转义形式的字符串转换成 Date 值。

参数:
s - 表示 “yyyy-mm-dd” 形式的日期的 String 对象
返回:
表示给定日期的 java.sql.Date 对象
抛出:
IllegalArgumentException - 如果给定日期不是 JDBC 日期转义形式 (yyyy-mm-dd)

你可能感兴趣的:(java)