yyyyMMddHHmmss字符串时间格式转换成yyyy-MM-ddTHH:mm:ss(20180716000000 -> 2018-07-16T00:00:00)

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

猜你喜欢

转载自blog.csdn.net/qq_35671159/article/details/81070771