elasticsearch解决JAVA日期型数据的导入

2019/7/24 18:02:20 人评论 次浏览 分类:学习教程

前几天练习使用JAVA向es导入数据,想到了日期型数据是怎么处理的。然后在网上查询了解到es日期型如果使用JAVA导入会出现8小时的时差,具体出现的原因请转到https://blog.csdn.net/linkedin_38160998/article/details/68951075或者自己百度。

网上不少的解决方式,我觉得需要自己来写一下。

第一种:使用时间戳记录时间。

存入数据时,使用String转换为date然后转换为long(这里使用String是方便格式转换):

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转换为date之后转换为String:

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

第二种:直接使用String存入es

Date time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2016-7-21 00:00:00");
IndexResponse response = client.prepareIndex("pointdata", "pointdata")
     .setSource(XContentFactory.jsonBuilder().startObject()
         .field("pointid","W3.UNIT1.10LBG01CP302")
         .field("pointvalue","0.8029")
         .field("inputtime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(time))
     .endObject())
     .get();

 

相关资讯

  • 那些我们不愿意承认的事

    很久没有见的老朋友,准确的说应该是很久没有见过的老师,一个比我大两岁的老师,我上初中的时候他从高中回来教我了一年。后来又回去上高中,我上高中的时候他上大学,现在我刚大学毕业他创办了公司。昨日一见依然如故,他还是热爱销售,而我却成了纯粹的技术人员。 看到他…

    2015/6/22 13:12:47

学习教程

共有访客发表了评论 网友评论

验证码: 看不清楚?
    -->