Elasticsearch는 JAVA 날짜 데이터 가져 오기를 해결합니다.

며칠 전 JAVA를 사용하여 es로 데이터를 가져 오는 연습을했고 날짜 데이터를 처리하는 방법을 생각했습니다. 온라인으로 검색 한 결과 JAVA를 사용하여 es date 유형을 가져 오면 8 시간의 시차가 있다는 것을 알게되었습니다. 구체적인 이유는 https://blog.csdn.net/linkedin_38160998/article/details/68951075 또는 Baidu를 직접 방문하십시오.

인터넷에는 많은 솔루션이 있습니다. 제가 직접 작성해야한다고 생각합니다.

첫 번째 : 타임 스탬프를 사용하여 시간을 기록합니다.

데이터를 저장할 때 문자열을 사용하여 날짜로 변환 한 다음 long으로 변환합니다 (여기서 문자열은 형식 변환을 용이하게하는 데 사용됨).

public final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str="2016-01-25 00:00:00";
Date date=dateFormat.parse(str);
Long dateLong=date.getTime();

데이터를 얻은 후 long을 사용하여 날짜로 변환 한 다음 문자열로 변환합니다.

DateFormat dateFormatdateFormat=new SimpleDateFormat();
long dateLong=1453651200000L;
Date date=new Date(dateLong);
String dateStr=dateFormat.format(date);
System.out.print(dateStr);

두 번째 유형 : 직접 문자열을 사용하여 es에 저장

Date time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2016-7-21 00:00:00");
IndexResponse response = client.prepareIndex("database", "table")
     .setSource(XContentFactory.jsonBuilder().startObject()
         .field("number",0.8029)
         .field("time",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(time))
     .endObject())
     .get();

일반적으로이 두 가지 방법으로 데이터를 저장 한 후 JAVA를 통해 데이터를 얻은 다음 형식 변환을 수행해야합니다.

추천

출처blog.csdn.net/FV8023/article/details/97146077