将日期作为参数传递

时间:2012-04-27 22:14:44

标签: jsp

我的文本框名称event_date具有“日期”内容

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

如何将文本框的参数传递给servlet并在我的预准备语句中使用它。在我的数据库中,event_date列的数据类型为“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);

1 个答案:

答案 0 :(得分:2)

您可以使用java.text.SimpleDateFormat将字符串解析为java.util.Date对象。可以指定要解析的不同日期格式和区域设置。像这样的例子:

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

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

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

最好在客户端对数据格式进行一些检查,或者在将数据格式发送到服务器端之前确保它符合某种日期格式,然后再解析它。