elasticsearch数据早8小时Or晚8小时,知道为什么吗,附解决方案

elasticsearch数据早8小时Or晚8小时,知道为什么吗,附解决方案

首页冒险解谜子午线157第一章汉化版更新时间:2024-10-14
前言


解决方案


如果是java写入es怎么解决时区问题?


/** * String timeZoneConvert = timeZoneConvert( * new Date().getTime() * , "yyyy-MM-dd'T'HH:mm:ss.SSSZ", * "Asia/Shanghai"); * * @param date 毫秒 * @param pattern format时间格式 * @param timeZone 时区 * @return 如:2019-12-30T16:32:07.616 0800 */ public static String timeZoneConvert(Long date,String pattern,String timeZone){ SimpleDateFormat simpleDateFormat=new SimpleDateFormat(pattern); simpleDateFormat.setTimeZone(TimeZone.getTimeZone(timeZone)); return simpleDateFormat.format(date); }

如果是logstash写入es怎么解决时区问题?


mutate{ gsub => [ "time", "[ ]", "T" ] } mutate{ replace => ["time","%{time} 08:00"] }

或是:

date { match => ["timestamp", "yyyy-MM-dd HH:mm:ss"] target => "my_timestamp" timezone => " 08:00" }


如果是语句聚合es数据怎么解决时区问题?

"aggs": { "by_day": { "date_histogram": { "field": "date", "interval": "day", "time_zone": "Asia/Shanghai" } } }


kibana显示怎么解决时区问题?



原理&试验


Es中和时间相关的数据类型


试验


{ "AsiaTime":"2019-12-30T16:32:07.616 0800", "newDateTime":1577694727581, "localTimeNow":"2019-12-30T16:32:07.615", "systemCurrentTimeMilis":1577694727581, "newDate":1577694727581 }


两个实验对时区的思考


首先来说实验一,为什么kibana上显示的时比数据时间多8个小时呢?明明是30号的数据,愣是跑到31号去了?

总结

欢迎来公众号【侠梦的开发笔记】 一起交流进步


查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved