gpt4 book ai didi

java - 如何将 html 表单中的输入类型 "date"值转换为 java 变量和 SQL 日期格式?

转载 作者:行者123 更新时间:2023-12-02 10:47:54 25 4
gpt4 key购买 nike

我尝试使用servlet类中的request.getParameter()获取html输入类型“date”的值,将其转换为JDBC类中的java日期,然后转换为sql日期格式。

but there is this exception java.text.ParseException: Unparseable date.

这是日期的 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());

最佳答案

tl;博士

myPreparedStatement.setObject(                       // As of JDBC 4.2, pass java.time objects to your database.
… ,
LocalDate // Represent a date-only value, without time-of-day and without time zone.
.parse( // Convert text to a `LocalDate` object.
"23/01/2018" ,
DateTimeFormatter.ofPattern( "dd/MM/uuuu" ) // Specify formatting pattern to match user input.
) // Returns a `LocalDate` object.
)

java.time

仅使用java.time类。切勿使用 java.util.Datejava.sql.DateCalendarSimpleDateFormat 等。 p>

String input = "23/01/2018" ;
DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu" ) ;
LocalDate ld = LocalDate.parse( input , f ) ;

从 JDBC 4.2 开始,我们可以直接与数据库交换 java.time 对象。

myPreparedStatement.setObject( … , ld ) ;

检索。

LocalDate ld = myResultSet.getObject( … , LocalDate.class ) ;
<小时/>

关于java.time

java.time框架内置于 Java 8 及更高版本中。这些类取代了麻烦的旧类 legacy日期时间类,例如 java.util.Date , Calendar , & SimpleDateFormat .

Joda-Time项目,现在位于 maintenance mode ,建议迁移到java.time类。

要了解更多信息,请参阅 Oracle Tutorial 。并在 Stack Overflow 上搜索许多示例和解释。规范为JSR 310 .

您可以直接与数据库交换java.time对象。使用JDBC driver符合JDBC 4.2或稍后。不需要字符串,不需要 java.sql.* 类。

从哪里获取java.time类?

ThreeTen-Extra项目通过附加类扩展了 java.time。该项目是 java.time future 可能添加的内容的试验场。您可能会在这里找到一些有用的类,例如 Interval , YearWeek , YearQuarter ,和 more .

关于java - 如何将 html 表单中的输入类型 "date"值转换为 java 变量和 SQL 日期格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52410740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com