时间戳类型的字符串 {Timestamp@15601} “2021-07-14 18:56:53.0“ 变成带T的Object类型 2021-07-14T10:56:53.000+0000 处理
生活随笔
收集整理的這篇文章主要介紹了
时间戳类型的字符串 {Timestamp@15601} “2021-07-14 18:56:53.0“ 变成带T的Object类型 2021-07-14T10:56:53.000+0000 处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
why
兩個平臺,一個平臺直接查詢數據庫,另一個平臺通過接口調用查詢數據,導致時間戳 Timestamp 格式字符串傳輸后變 yyyy-MM-ddTHH:mm:ss.000+0000 日期格式,出現這種問題的可能原因是:從數據庫查詢出來的數據沒有進行封裝,直接使用Map<String, Object>類型保存,導致值類型信息丟失,這是我調試過程中獲取的時間字段TME的值:
code
# 最初獲取到的格式【當然也是最終需要的格式】 TME -> {Timestamp@15601} "2021-07-14 18:56:53.0" # 經過接口傳輸后變成了時間格式 TME -> 2021-07-14T10:56:53.000+0000 /*** 將帶T的時間字符串轉換為時間戳** @param rowList 帶轉換列表* @return*/private List<Map<String, Object>> formatTimePattern(List<Map<String, Object>> rowList) {String timeField = "TME";rowList.forEach(rowMap->{rowMap.forEach((key,val)->{if(timeField.equalsIgnoreCase(key)){SimpleDateFormat from = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");Date fromParse = null;try {fromParse = from.parse(val.toString());} catch (ParseException e) {e.printStackTrace();}assert fromParse != null;Timestamp timestamp = new Timestamp(fromParse.getTime());// 用時間戳覆蓋之前的時間字符串rowMap.put(key,timestamp);}});});return rowList;}總結
時間字段的格式是一個令人頭疼的問題,前后端和數據庫有可能存放著三種不同類型的時間值。統一使用字符串類型有利于數據的存取展示,但是對數值的操作就不方便了,很多時候來回轉換時間字段值的格式就讓人奔潰落淚 😭 解決的辦法是封裝,讓框架接管時間字段值的格式化任務。
總結
以上是生活随笔為你收集整理的时间戳类型的字符串 {Timestamp@15601} “2021-07-14 18:56:53.0“ 变成带T的Object类型 2021-07-14T10:56:53.000+0000 处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Java代码】Lamda表达式将Lis
- 下一篇: Hasor【付诸实践 03】Datawa