这是我的部分代码:         Info.ktzgl = Float.parseFloat(request.getParameter("ktzgl"));
Info.ktzps = request.getParameter("ktzps");
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
Info.fprq = dateFormatter.format(request.getParameter("fprq"));
Info.scdbrq = dateFormatter.format(request.getParameter("scdbrq"));
Info.bcdbrq = dateFormatter.format(request.getParameter("bcdbrq"));
Info.update = dateFormatter.format(new java.util.Date());
我输入的日期都是从日历器选取的,格式:YYYY-MM-DD
数据库是sql server 2003,我在数据库定义fprq、bcdbrq和scdbrq都是datetime类型的,在类定义里面定义为字符串型
代码如下:
public String fprq;
public String scdbrq;
public String bcdbrq;
这是报错:exception org.apache.jasper.JasperException: Exception in JSP: /save.jsp:4340:  Info.ktzgl = Float.parseFloat(request.getParameter("ktzgl"));
41:  Info.ktzps = request.getParameter("ktzps");
42:  SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");
43:  Info.fprq = dateFormatter.format(request.getParameter("fprq"));
44:  Info.scdbrq = dateFormatter.format(request.getParameter("scdbrq"));
45:  Info.bcdbrq = dateFormatter.format(request.getParameter("bcdbrq"));
46:  Info.update = dateFormatter.format(new java.util.Date());
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause java.lang.IllegalArgumentException: Cannot format given Object as a Date
java.text.DateFormat.format(DateFormat.java:281)
java.text.Format.format(Format.java:140)
org.apache.jsp.save_jsp._jspService(save_jsp.java:115)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

解决方案 »

  1.   

    你应该把时间声明为:Timestamp类型的.
    页面时,你使用String 类型的去接收.然后要使用一个用于String类型转换的类,来处理这个之间的转换:
    帖下来:
    package com.hjj.bean;import java.sql.Date;
    import java.text.DateFormat;
    import java.sql.Timestamp;
    public class StringUtil {    /**
         * 得到当前系统日期时间的字符串表示 如:"2003-08-21 12:23:56"
         * @return 当前系统日期时间的字符串表示
         */
        public static String getDateTime(Date date) {
            DateFormat mediumDateFormat = DateFormat.getDateTimeInstance(DateFormat.
                MEDIUM,
                DateFormat.
                MEDIUM);
            return mediumDateFormat.format(new java.util.Date(date.getTime()));
        }
        public static String getTimestamp(Timestamp date) {
            DateFormat mediumDateFormat = DateFormat.getDateTimeInstance(DateFormat.
                MEDIUM,
                DateFormat.
                MEDIUM);
            return mediumDateFormat.format(date);
        }    public static String getBRString(String text) {
            if(text != null && text.indexOf("<") > -1){
                text = text.replaceAll("<","&lt;");
            }
            if(text != null && text.indexOf(">") > -1){
                text = text.replaceAll(">","&gt;");
            }
            if(text != null && text.indexOf("\n") > -1){
                text = text.replaceAll("\n", "<br>");
            }
            return text;
        }
        public static void main(String[]args) {
        }}
      

  2.   

    我没看你代码,但你看错误原因嘛.看这句话Cannot format given Object as a Date
    很明显是类型转换的问题。一个Object类型不能做为Date类型
      

  3.   

    时间格式转换错误
    SQL Server好像输入要转换为Date型的字符串格式为YYYY-MM-dd格式看看是不是没写对,还有,往数据库里添加的时候的转换函数为convert(datetime,'" + 字符串 + "')"格式如果取系统时间用getdate()应该可以把.
      

  4.   

    进数据库的时间类型应该是java.sql.Date类型的,所以要转不能是util的date