将字符串变量中的日期转换为日期变量

时间:2013-12-19 07:55:54

标签: java jsp

如何将字符串变量中的日期转换为日期变量.. ?? 数据库中的日期采用yyyy-MM-dd格式。 我进入dd-MM-yyyy格式..并试图以db格式转换它,以便我可以使用'之间'查询..代码在下面

        <%String date1=(String)request.getAttribute("from");%>

        <%String date2=(String)request.getAttribute("to");%>
        <%String empcode=(String)request.getAttribute("occ");%>
        <%SimpleDateFormat formatter=new SimpleDateFormat("yyyy-MM-dd");%>
        <%Date date = new Date(); %>


        <%Date fromdate=formatter.parse(date1);%>
        <%Date todate=formatter.parse(date2);%>

2 个答案:

答案 0 :(得分:1)

您正在使用getAttribute,但我怀疑您需要getParameter(如果您尝试将信息作为GETPOST请求的一部分提交)

以下是getAttribute的工作原理:

  

属性可以通过两种方式设置。 servlet容器可以设置属性以提供有关请求的自定义信息。例如,对于使用HTTPS发出的请求,可以使用属性javax.servlet.request.X509Certificate来检索有关客户端证书的信息。也可以使用setAttribute(java.lang.String, java.lang.Object)以编程方式设置属性。这允许在RequestDispatcher呼叫之前将信息嵌入到请求中。

以下是getParameter的工作原理:

  

以String形式返回请求参数的值,如果参数不存在,则返回null。请求参数是随请求一起发送的额外信息。对于HTTP servlet,参数包含在查询字符串或发布的表单数据中。

查看日期格式,您在问题中提到了两种不同的格式。如果date1字符串看起来像2013-12-19,那么该代码将起作用。如果是19-12-2013,那么该代码将无效,因为您已告诉SimpleDateFormat使用"yyyy-MM-dd",但您需要"dd-MM-yyyy"

在这两种情况下,调试方法都是查看date1date2包含的内容。这将指明如何解决它。

答案 1 :(得分:0)

SimpleDateFormat formatter=new SimpleDateFormat("dd-MM-yyyy");
Date fromdate=formatter.parse(date1);
SimpleDateFormat formatter2=new SimpleDateFormat("yyyy-MM-dd");
String newDate1 = formatter2.format(fromdate);

newDate1现在格式为yyyy-MM-dd。 您可以再次使用新字符串

创建日期对象
formatter2.parse(newDate1);

但我认为没必要