jxl讀取excel中Date型別
阿新 • • 發佈:2019-01-23
關鍵問題:
1.使用DateCell型別讀取cell
2.讀取出來的時間可能需要修改時區
-
讀取Excel中的日期
如圖,讀取K列1行資料
程式碼如下:Cell cell; DateCell dc; String str = ""; Date date; SimpleDateFormat SF_date = new SimpleDateFormat("yyyy-M-d"); SimpleDateFormat SF_time = new SimpleDateFormat("HH:mm:ss");
cell = sheet.getCell(10,0);
dc = (DateCell)cell;
date = dc.getDate();
str = SF_date.format(date);
System.out.println(str);
str = SF_time.format(date);
System.out.println(str);
輸出結果如下:
可以看出,日期的格式是正確的,但是數值不正確,恰好比實際的時間多出了8個小時。修正的方法是新增修改時區的程式碼。 幾點說明:
1.excel中時間型別的cell需要用datecell讀取,將cell強制轉為datecell型別後,用datecell的getDate方法得到date型別的資料。
2.使用simpleDateFormat來指定日期的格式,程式碼如上。
3.用到的幾個包:
import java.text.SimpleDateFormat;
import java.util.Date;
import jxl.Cell;
import jxl.DateCell;
-
修改時區
Cell cell;
DateCell dc;
String str = "";
Date date;
SimpleDateFormat SF_date = new SimpleDateFormat("yyyy-M-d");
SimpleDateFormat SF_time = new SimpleDateFormat("HH:mm:ss");
TimeZone zone = TimeZone.getTimeZone("GMT");
cell = sheet.getCell(X_Axi,0);
dc = (DateCell)cell;
date = dc.getDate();
SF_date.setTimeZone(zone);
SF_time.setTimeZone(zone);
str = SF_date.format(date);
System.out.println(str);
str = SF_time.format(date);
System.out.println(str);
輸出結果為: