java讀取excel或者csv時日期格式資料處理
阿新 • • 發佈:2019-01-11
背景:最近寫一個通過excel批量匯入資料的功能,裡面含有時間,但是java讀取之後把時間轉為了距離1990年1月1號的天數,比如excel中時間為2018/9/16 18:30,java讀取之後變成43359.77083就會有問題
出現的問題:
SimpleDateFormat startFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = startFormat.parse(tmpMap.get("field7"); //這句就會報錯,因為43359.77083不能使用parse轉
)
解決辦法:
參考這篇部落格: https://blog.csdn.net/Steven_sf/article/details/78801971
我的程式碼為:
//主要使用HSSFDateUtil這個工具類處理時間,Double.valueOf(tmpMap.get("field3")這一堆就是43359.77083,使用不同的java類讀取excel獲取的方式不同,不用管
Date StartDate = HSSFDateUtil.getJavaDate(Double.valueOf(tmpMap.get("field3")));
//這一段是為了處理時區問題,沒有遇見的不用看
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(StartDate);
int timeInterval = Integer.valueOf(timeZone);
rightNow.add(Calendar.HOUR,timeInterval);
Date resultDate = rightNow.getTime();
String strDate = startFormat.format(resultDate);
Date getDate = startFormat.parse(strDate);
之前這段程式碼是之前一個同事寫的,寫到這裡報錯,直接try catch不管了,,,無語,以後好好努力,把遇見的問題儘量都整理出來