【发布时间】:2026-02-03 22:35:01
【问题描述】:
我尝试在servlet类中使用request.getParameter()获取html输入类型“日期”的值,在JDBC类中将其转换为java日期,然后转换为sql日期格式。
但是有这个异常 java.text.ParseException: Unparseable 日期。
这是日期的 HTML 标记
input type="date" name="BirthDate"
这是从 HTML 页面获取值的 servlet 代码
String bDate = request.getParameter("BirthDate");
这是转换它的 JDBC 类代码
String bbd = user.getBDate();
DateFormat df = new SimpleDateFormat("dd/MM/yyy");
java.util.Date bbDate = df.parse(bbd);;
java.sql.Date bDate = new java.sql.Date(bbDate.getTime());
【问题讨论】:
-
输入字段中输入了什么?如果您至少使用 Java 8 和 JDBC 4.2,最好使用
DateTimeFormatter解析成LocalDate。您可以将LocalDate直接保存到您的SQL 数据库中,这样就节省了一次转换。此外,这两个Date类早已过时且设计不佳,因此您将拥有所有优势。 -
几点,A 你的简单日期格式有 3 个而不是 4 个 y。 B 我建议在日期上使用 LocalDate。最后,如果您使用它来编写 sql,则 sql.Date 字段将在查询中接受 LocalDate 的 toString。
-
仅供参考,非常麻烦的旧日期时间类,例如
java.util.Date、java.util.Calendar和java.text.SimpleDateFormat,现在是 legacy,被 Java 8 中内置的 java.time 类所取代,之后。见Tutorial by Oracle。
标签: java html sql unparseable