升級mysql-connector-java至8.0.27導致時間格式異常


1.前因

  公司要求升級mysql-connectot-java.jar至最新版本8.0.27,然后在查詢數據是時間格式時,時間格式異常。具體表現為“2021-12-30T00:09:12、2021-12-30T07:00”這種格式。

如果僅僅是多一個T可以替換來解決,但是發現存在秒為00的時候,秒會丟失。這樣就需要從源頭上考慮了

2.解決過程和解決方法

在網上嘗試了很多方法都未解決問題。后來觀察發現在解析返回數據時原來是用SqlRowSet.getString,嘗試用SqlRowSet.getTime/getDate。發現會報錯java.time.LocalDateTime cannot cast to xxx。

於是改寫為以下代碼

        LocalDateTime localDateTime = LocalDateTime.parse(rs.getString(cloumn));
        ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault());
        Date date = Date.from(zonedDateTime.toInstant());
        String formatDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);

至此問題解決。如果以上內容有何紕漏,歡迎大家在評論區指出。有何疑問也可以在評論區交流!

謝謝觀看哈。

參考鏈接:https://blog.csdn.net/hspingcc/article/details/73332380

 


免責聲明!

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



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