起因:在用代码构造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,挺不错的一个工具。