1. 程式人生 > >java讀取excel或者csv時日期格式資料處理

java讀取excel或者csv時日期格式資料處理

背景:最近寫一個通過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不管了,,,無語,以後好好努力,把遇見的問題儘量都整理出來