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