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不管了,,,無語,以后好好努力,把遇見的問題盡量都整理出來
 
        

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM