java - not able to parse string into date using jexcel api -


i faced problem faced few days ago. have parse file , convert string date. had done same csv file few days ago. however, new file giving error: java.text.parseexception: unparseable date: ""3/4/2011""

why string getting printed 2 "" around it? think root cause of problem. posting code below . please note same code works file date printed 3/4/2011 no "" around it.

     writableworkbook wbwrite=null;      writablesheet sheet=null;      label lwrite=null;      bufferedreader br=null;      number n=null;       string strfile="quotes.csv";  string strline = "";      string st[];      string delimiter="[,]";  int linenumber = 0, tokennumber = 0;     int length=0;     int counter=0;     calendar cal = calendar.getinstance();      datetime datecell=null;       if(strfile.equals("quotes.csv"))      {          system.out.print("in loop if");           try          {             file file=new file("quotes.xls");             wbwrite=workbook.createworkbook(file);             system.out.print("file created");             //path=file.getcanonicalpath();             sheet = wbwrite.createsheet("sheet 1", 0);             lwrite=null;             n=null;             date dtest=null;             dateformat df=null;             date dadd=null;              df=new simpledateformat("dd-mm-yy");      //create bufferedreader read csv file     br = new bufferedreader( new filereader(strfile));     strline = "";     //st[]=empty;             delimiter="[,]";     linenumber = 0; tokennumber = 0;             length=0;     //read comma separated file line line     while( (strline = br.readline()) != null)     {         //system.out.print("strline="+strline);         //break comma separated line using ","         st=strline.split(delimiter);                     length=0;         while(length<st.length)         {             //display csv values             //             system.out.println("line # " + linenumber +                     ", token # " + tokennumber                     + ", token : "+ st[length]);                            if(tokennumber==2)                            {                                  system.out.print("date="+st[length]);                                   dateformat formatter = new simpledateformat("dd-mm-yyyy");                                   date date = (date)formatter.parse(st[length]);                                   system.out.print("date="+date);                                   cal.settime(date);                                   cal.set(calendar.hour_of_day, 17);                                   cal.set(calendar.minute, 30);                                   cal.set(calendar.second, 0);                                   cal.set(calendar.millisecond, 0);                                   date = cal.gettime();                                   system.out.print("date="+date);                                   datecell=new datetime(tokennumber,linenumber,date);                                   sheet.addcell(datecell);                                   lwrite=new label(tokennumber,linenumber,st[length]);                                   sheet.addcell(lwrite);                          }                      if(tokennumber==1||tokennumber==5||tokennumber==6||tokennumber==7)                      {                             n=new number(tokennumber,linenumber,float.parsefloat(st[length]));                            sheet.addcell(n);                      }                      tokennumber++;                      length++;     }     //reset token number             //tokennumber = 0; }     wbwrite.write();     wbwrite.close(); } catch(exception e) {         system.out.print("error="+e); }   }  } 

i solved it. string had leading , trailing quotes led double quotes when parsed. that's why ""3/4/2011"". added

      if (st[length].startswith("\""))      {       st[length] = st[length].substring(1, st[length].length());       }      if (st[length].endswith("\""))   {         st[length] = st[length].substring(0, st[length].length() - 1);   } 

plus date format dd-mm-yyyy ; changed dd/mm/yyyy. getting correct answer.


Comments

Popular posts from this blog

c# - How to set Z index when using WPF DrawingContext? -

razor - Is this a bug in WebMatrix PageData? -

visual c++ - Using relative values in array sorting ( asm ) -