是否可以使用无痛语言将日期字段转换为其他时区?

时间:2019-01-16 10:44:51

标签: elasticsearch timezone elasticsearch-painless

是否可以使用Painless转换此代码? 索引中有一个名为 created 的字段,目标是将值转换为其他时区,当前时区为UTC。

  "aggregations": {
    "dayOfWeek": {
      "terms": {
        "script": {
          "inline": "doc['created'].date.setZone(org.joda.time.DateTimeZone.forID(tz)); doc['created'].date.dayOfWeek",
          "lang": "groovy",
          "params": {
            "tz": "Europe/London"
          }
        }
      }
    }
  }

1 个答案:

答案 0 :(得分:0)

在Google进行了很长一段时间的搜索后,发现了我自己的需求。 这对我有用(使用无痛方法):

def myDate = doc['created'].value.withZoneSameInstant(ZoneId.of('Europe/London')); 
myDate.dayOfWeek;

我在此页面上找到了帮助: https://gitlab.kveer.fr/upstream/elasticsearch/commit/81f60652d8c4763b3470d148239c96bcd0c29553