Excel文件有字段为("2010-07-06")。在读取的过程中已经进行转换
DateFormat format= new SimpleDateFormat("yyyy-MM-dd"); 
accept.setComplainDate(format.parse(sheet.getCell(1,i).getContents()));//读取("2010-07-06")。
虽能导入到数据库,但是后台还是有报错如下:
2010-07-06 17:55:14,421 [http-8080-Processor25] ERROR [500.jsp] - Unparseable date: ""
java.text.ParseException: Unparseable date: ""
at java.text.DateFormat.parse(DateFormat.java:335)
at com.foomei.wjcg.web.action.AcceptRegistrationAction.importexcel(AcceptRegistrationAction.java:194)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)

解决方案 »

  1.   

    试试这个:
    accept.setComplainDate(java.sql.Date.valueOf(format.format(sheet.getCell(1,i).getContents())));//读取("2010-07-06")。
      

  2.   

    在确定 sheet.getCell(1,i).getContents() 不为空的前提下
      

  3.   

    直接插入用format.format(date)返回的字符窜
      

  4.   

    LZ  你的 数据库里面的 ComplainDate 字段 是 Date类型 还是 varchar的啊? 
      

  5.   


    if(CellType.DATE.equals(cells[0].getType())){
    DateCell dateCell = (DateCell) cells[0];
    DateFormat format= new SimpleDateFormat("yyyy-MM-dd");  
    accept.setComplainDate(format.parse(dateCell.getDate()));
    }
    这样就可以了
      

  6.   

    数据库是Date类型 那这样accept.setComplainDate(java.sql.Date.valueOf(format.format(sheet.getCell(1,i).getContents())));//读取("2010-07-06")。 确定 sheet.getCell(1,i).getContents() 不为空的前提下 应该没问题....
      

  7.   

    不能这样子取的,excel里边的日期单元格,一般设置了单元格类型。
    举例子:CellType t1 = cell.getType();
    Date regDate = null;
    if (t1 == CellType.DATE)
    {
    DateCell regCell = (DateCell) cell;
    regDate = regCell.getDate();
    }
    else if (t1 == CellType.EMPTY)
    {
    regDate = null;
    }
    else
    {
    SimpleDateFormat sdf = new SimpleDateFormat(("yyyy-MM-dd");  
    try
    {
    regDate = sdf.parse(value);
    } catch (ParseException pe) {
    }
    }
      

  8.   

    数据库的data类型  好像和java里面的 data类型不一致的。  这个要自己去找找。 以前碰到过类似问题。
      

  9.   

    后台还报错 什么意思?取出来报错?
    数据库的data类型 和java里面的 data类型不一致的。
    数据库是 java.sql.Date Java里面是 java.util.Date 所以一般是先把java里面的date类型转换为String类型 然后在插入数据库的时候用java.sql.Date.valueOf()***;