0
我面臨着前幾天我遇到的問題。我必須解析這個文件並將字符串轉換爲日期。我幾天前對另一個CSV文件做了同樣的處理。但是,新文件出現此錯誤:java.text.ParseException:Unparseable date:「」3/4/2011「」無法使用jexcel api解析字符串到日期
爲什麼字符串打印時帶有兩個「」?我認爲這是問題的根源。我張貼下面的代碼。請注意,相同的代碼適用於日期打印爲3/4/2011且其周圍沒有「」的其他文件。
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 to read csv file
br = new BufferedReader(new FileReader(strFile));
strLine = "";
//st[]=empty;
delimiter="[,]";
lineNumber = 0; tokenNumber = 0;
length=0;
//read comma separated file line by 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);
}
}
}