1

我有一个名为 event_date 的文本框,其中包含“日期”内容

<input style="width: 196px" id="f_date1" name="event_date"/>

我怎样才能将文本框的参数传递给 servlet 并在我准备好的语句中使用它。在我的数据库中,列 event_date 的数据类型为“日期”。

我知道如何为 String 做这件事(如下所示),但我将如何在 Date 中做这件事......

String event_date = request.getParameter("event_date");

  try {
  event_date2 = java.util.Timestamp.parse(event_date);
  Class.forName("org.postgresql.Driver");
  connection = DriverManager.getConnection(connectionURL, "mydb", "pass");

  String sql ="insert into prodtracker (event_date) values(?)";

  PreparedStatement pst = connection.prepareStatement(sql);


  pst.setString(1, event_date2);
4

1 回答 1

2

您可以使用java.text.SimpleDateFormat将字符串解析为java.util.Date对象。可以指定不同的日期格式和语言环境来解析。像这样的一个例子:

SimpleDateFormat format = new SimpleDateFormat("dd-MMM-yyyy");
Date date = format.parse(request.getParameter("event_date"));

然后您可以转换java.util.Datejava.sql.Date以便在 PreparedStatement 中使用:

java.sql.Date sqlDate = new java.sql.Date(date.getTime());
PreparedStatement pst = connection.prepareStatement(sql);
pst.setDate(1, sqlDate);

最好在客户端或当它已发送到服务器端时对数据格式进行一些检查,以确保它符合特定的日期格式,然后再将其解析为日期。

于 2012-04-28T00:47:23.817 回答