在使用excel匯入功能的時候,難免會匯入日期型別的資料,這個時候無論使用easyexcel還是poi的匯入方式,都有可能出現純數字的日期。
1、如果輸入的日期是2023年之前的,則不會變成純數字;
2、如果是2023年之後的日期,則在匯入的時候可能會變成數字:
從這張圖裡面就能看出來原因:excel解析時間型別的資料的時候把日期轉成文字型別了。
那麼這個數字代表什麼呢?
這個數字與上面提到的2023年相關,因為excel中的時間是從2023年開始的,而轉換成文字型別的數字則代表著2023年之後的n天,知道這個原理之後,就很好解決這個問題了:
1)如果是正常的時間型別則進行日期轉換(2023年之前日期是正常的文字型別);
2)如果是純數字則進行日期的加法運算。
這個時候需要注意一點的是:1900-02-29這一天是不存在的,但是在excel中是可以輸入並轉換成數字的,所以需要特殊處理一下,整體處理的**如下:
private string judgememberbirthday
(memberinfo member)
//日期轉換格式
******dateformat sdf =
new******dateformat
("yyyy-mm-dd");
//將字串日期進行格式化,如果出現異常,說明不是日期格式的
datetimeformatter df = datetimeformatter.
ofpattern
("yyyy-m-d");
localdate date = localdate.
parse
(member.
getbirthday()
, df)
; member.
setbirthday
(date)
;return null;
}catch
(exception e)
member.
setbirthday
(localdate)
;return null;
}else
if(integer.
valueof
(member.
getbirthday()
)<60)
else
}else
}}
java匯入excel日期資料
在使用poi解析excel檔案時,會發現,中的日期解析出來是乙個數字,如下 我們期望這個日期解析出來是 2015 8 21,而結果卻是42237.什麼原因呢?這個數字是什麼呢?是以1900年為原點,到2015年8月21日,之間經過的天數。解決方案 將數字作為天數加在1900,01,01上 impor...
Excel匯入功能
匯入excel內容 首先批量插入資訊 boolean f service.insertxzxk m 查出資訊。list listall service.queryxzxklist m,false 對比兩個list excel中的資料在list存在表示成功,不存在表示失敗,失敗的放到error裡面 l...
oracle匯入檔案時,日期格式問題
oracle匯入檔案時,日期格式問題 load data infile iot opthb tibs home xcx test loadfile.txt truncate into table zhicai record tmp fields terminated by trailing null...