Java 日期转换jsp

Java 日期转换jsp,java,sql,jsp,data-conversion,Java,Sql,Jsp,Data Conversion,我使用jsp代码从用户处获取日期(使用html表单),并尝试在PreparedStatement(sql)中使用该日期。 用户以dd/mm/yyyy格式输入日期,我尝试将其转换为sql日期yyyy-mm-dd 这是htl表单中的输入类型: <td><input type=date name="fdate"/></td> <td><input type=date name="tdate"/></td> 这是我从setDate

我使用jsp代码从用户处获取日期(使用html表单),并尝试在PreparedStatement(sql)中使用该日期。 用户以dd/mm/yyyy格式输入日期,我尝试将其转换为sql日期yyyy-mm-dd

这是htl表单中的输入类型:

<td><input type=date name="fdate"/></td>
<td><input type=date name="tdate"/></td>
这是我从
setDate
行中得到的错误:

"The method setDate(int, java.sql.Date) in the type PreparedStatement is not applicable for the arguments (int, java.util.Date)"

如何解决它?

SimpleDateFormat格式=新的SimpleDateFormat(“yyy-mm-dd”)应该是

SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy",Locale.ENGLISH);
为安全起见,尽量使用区域设置

再次
datefdate=format.parse(fDateStr)
为您提供了java.util.Date,您需要将其转换为java.sql.Date以将其设置为如下所示的PreparedStatement

public static Date convertUtilDateToSqlDate(java.util.Date date){
        if(date != null) {
            Date sqlDate = new Date(date.getTime());
            return sqlDate;
        }
        return null;
    }
然后


您必须使用
java.sql.Date
而不是
java.util.Date

试试这个

prSelect.setDate(1, java.sql.Date.valueOf(fDateStr));
prSelect.setDate(2, java.sql.Date.valueOf(tDateStr));

有些数据库不允许您创建名为“日期”的列。。。你用的是什么数据库管理系统?没关系,我有一列名为“日期”。这是hyperion sql(jboss),我更改了它,但我仍然得到了:在这一行找到了多个注释:-类型PreparedStatement中的方法setDate(int,java.sql.Date)不适用于参数(int,java.util.Date)-类型PreparedStatement中的方法setDate(int,java.sql.Date)不适用于参数(int,java.util.Date)在“prSelect.setDate(1,fdate)”行中检查完整答案我完成了,但现在我得到了:javax.servlet.ServletException:java.text.ParseException:Unparseable Date:“01/01/2013”,这是因为您指定了simpledateformat来解析这个
yyyyy-MM-dd
类型的字符串,并且您的输入是01/01/2013(dd/MM/yyyyyy)在SimpleDataFormat参数中键入change it好的,我照你说的做了。现在我明白了,chrome中的行为和我从eclipse explorer运行它时的行为是不同的。当我使用YY-MM-dd时,它从chrome中工作,当我使用dd/MM/yyyy时,它在eclipse explorer中工作,我怎样才能做到通用?
prSelect.setDate(1, convertUtilDateToSqlDate(fdte));
prSelect.setDate(2, convertUtilDateToSqlDate(tdate));
prSelect.setDate(1, java.sql.Date.valueOf(fDateStr));
prSelect.setDate(2, java.sql.Date.valueOf(tDateStr));