【问题标题】:How to set date field in HTML form and how can i retrieve the date in servlets?如何在 HTML 表单中设置日期字段以及如何在 servlet 中检索日期?
【发布时间】:2011-03-20 11:57:55
【问题描述】:

我需要在我的 html 表单中设置一个日期字段。提交表单后,请求转到 servlet,数据将存储在数据库中。在 servlet 中如何检索日期字段? 请帮帮我。

-renu

【问题讨论】:

    标签: java html jsp servlets


    【解决方案1】:

    你会从 HttpRequest 参数中得到它:

    DateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
    String dateAsString = httpRequest.getParameter("form-name-for-the-date-here");
    Date dateAsObject = dateFormatter.parse(dateAsString);
    

    如果您使用的是 Spring,您应该使用他们的数据绑定 API。

    【讨论】:

      【解决方案2】:

      上面的答案很好。如果您想在数据库级别更改格式,请使用此格式。

      PreparedStatement:

      • 对于 MySQL TIMESTAMP,使用to_timestamp( ? ,'dd-mm-yyyy %h:%i:%s') 格式。
      • 对于 Oracle TIMESTAMP,使用 to_date(dateAsString ,'DD-MM-RR HH24:MI:SS') 格式。
      • 对于 MySQL DATE,使用 to_timestamp( ? ,'dd-mm-yyyy') 格式。
      • 对于 Oracle DATE,使用 to_date(? ,'DD-MM-RR') 格式。

      PreparedStatement 中设置dateAsString

      String dateAsString = httpRequest.getParameter("form-name-for-the-date-here");
      

      【讨论】:

      • 我不会将日期作为字符串来回按摩。每当您想按日期选择行时,这都会带来性能问题。例如。在某些时间戳、月或天等之间。为值使用正确的类型!
      • @paragjioshi,你为什么不简单地使用PreparedStatement.setDate() 方法?实现数据库驱动程序的供应商将有优化的方法来将日期存储在各自的数据库服务器中。所有这些转换都是不必要的。
      猜你喜欢
      • 2018-08-12
      • 1970-01-01
      • 2015-10-09
      • 1970-01-01
      • 2011-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多