java.lang.IllegalArgumentException: Cannot format given Object as a Date
at java.text.DateFormat.format(DateFormat.java:279)
at java.text.Format.format(Format.java:133)
at IAToolkit.use.compare(use.java:77)
at org.apache.jsp.search_005fdo_jsp._jspService(org.apache.jsp.search_005fdo_jsp:148)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)

解决方案 »

  1.   

    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
           String date1=df.format(new Date()); 
           String date2=(String)rs.getString("ATD"); //获取数据库中记录的时间
            String date=df.format(date2);  
            if(df.parse(date).before(df.parse(date1)))
                yn="飞机已从前方机场起飞";
            else
                yn="飞机未从前方机场起飞";
      

  2.   

    DateFormat 不能把某对象转换成Data类型
      

  3.   

    String date=df.format(date2);  错误!format参数为Date类型,你使用了String,是不行的,可以这样Date dt=(java.util.Date)rs.getDate(..);//注意返回的是java.sql.Date类型,
    应该注意的是getDate返回的date类型可能会把时间信息丢失,你可以使用rs.getTimestamp(..)方法,然后再调用date.before方法比较!
      

  4.   

    kuangjz(阿旷):您能帮我把我的改一下么?我不会用!
      

  5.   

    直接在查询里加条件:select '飞机已从前方机场起飞' info from table where ATD<getdate()
    select '飞机未从前方机场起飞' info from table where ATD>getdate()
      

  6.   

    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
           java.util.Date date1=new java.util.Date(); 
           java.util.Date date2=(java.util.Date)rs.getTimestamp("ATD"); //获取数据库中记录的时间,你可以使用getDate("ATD");
    //System.out.println(df.format(date2));查看一下是否含有时间信息
    //
            if(date2.before(date1))
                yn="飞机已从前方机场起飞";
            else
                yn="飞机未从前方机场起飞";