在使用restHighLevelClient进行日期时间查询的时候,发现返回结果不对,好像把查询条件前8小时的数据查出来了。原来是时区不对。因为es默认时区是UTC,所以在查询的时间要把日期时间类型转成UTC格式进行查询。
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");

boolQueryBuilder.must(QueryBuilders.rangeQuery("commentTime").gte(format.format(date1)));

或者指定时区

boolQueryBuilder.must(QueryBuilders.rangeQuery("commentTime").gte(date1).timeZone("Asia/Shanghai"));

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐