1. 程式人生 > >poi讀取Excel時日期為數字 的解決方法

poi讀取Excel時日期為數字 的解決方法

在使用poi解析Excel檔案時,會發現,表格中的日期解析出來是一個數字,如下:

這是Excel表格的截圖:


這是poi解析出來的這個日期的結果:

我們期望這個日期解析出來是:2015/8/21,而結果卻是42237.什麼原因呢?這個數字是什麼呢?是以1900年為原點,到2015年8月21日,之間經過的天數。

知道這個後,就很好處理了,我們拿到1900年的日期,在這個日期上加上42237天即可。如下:

 Calendar calendar = new GregorianCalendar(1900,0,-1);
 Date d = calendar.getTime();
然後,利用DateUtils的方法,加上天數(截圖案例中,這個天數被轉為了字串,值為42237),如下:
Date dd = DateUtils.addDays(d,Integer.valueOf(conStart1));
此時,這個dd的值,打印出來,就是 Fri Aug 21 00:00:00 CST 2015,直接把這個Date型別的dd,存到資料庫,即可,儲存後如下:

2015-08-21