Как заменить устаревшие форматы даты Joda, используя toString (), на Java DateTimeFormatter в Elastic Painless Scripts? - PullRequest
2 голосов
/ 15 мая 2019

Elastic Search Безболезненные сценарии возвращают предупреждение о том, что формат даты с использованием date.toString('HH') устарел.

Следующее предупреждение:

!Устаревание: 299 Elasticsearch-6.7.0-8453f77 "Использование метода времени joda [toString (String)] устарело. Вместо этого используйте [DateTimeFormatter]."

Но когда я пытаюсь использоватьJava DateTimeFormatter для форматирования даты, я получаю JodaCompatibleZonedDateTime формат не найден.

Что мне здесь не хватает?

getHour() работает, но не в правильном формате.doc[params.date_field].date.format(f); Не работает.doc[params.date_field].value.toString('HH'); Не рекомендуется.


 "aggs": {
    "byHour": {
      "terms": {
        "script": {
          "lang": "painless",
          "source": """
            DateTimeFormatter f = DateTimeFormatter.ofPattern(params.format); 
            return  doc[params.date_field].value.format(f);

          """,
          "params": {
            "date_field": "receivedTime",
            "format": "HH"
          }
        },
        "size": 24,
        "order": {
          "_key": "asc"
        }
      }
    }
  }

Ошибка: динамический метод [org.elasticsearch.script.JodaCompatibleZonedDateTime, format / 1] не найден

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...