起因:在用代碼構造druid的查詢json請求體對象的時候,由於druid的時間範圍查詢格式比較特殊,所以在這裏總結一下。druid要求的格式如下:
"intervals": [ "2018-07-16T00:00:00/2018-07-16T23:59:59 ]
我們這邊前臺傳過來的參數統一爲20180716000000這種格式的,所以需要轉換一下,我總結了兩種:
String fromDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").format(new SimpleDateFormat("yyyyMMddHHmmss").parse(date.getFromDate())); String toDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").format(new SimpleDateFormat("yyyyMMddHHmmss").parse(date.getToDate()));
上面這種需要拋出解析異常,且線程不安全
String fromDate = LocalDateTime.parse(date.getFromDate(), DateTimeFormatter.ofPattern("yyyyMMddHHmmss")).toString(); String toDate = LocalDateTime.parse(date.getToDate(), DateTimeFormatter.ofPattern("yyyyMMddHHmmss")).toString();
上面這種線程安全,LocalDateTime是java8新增的,感覺沒必要全掌握,等用到某個功能的時候去網上查一下,或者看一下api,挺不錯的一個工具。