Конвертировать Groovy даты манипуляции в безболезненно - PullRequest
0 голосов
/ 04 июля 2018

У меня есть поисковый запрос для Elasticsearch, который использует отличный встроенный скрипт, который мне нужно преобразовать в язык Painless

mdt= doc.eventstartdate.value;
dtevent = new DateTime(mdt).withTime(0,0,0,0).getMillis();
d = (dtevent<dtnow?dtnow:dtevent);

Как вы можете видеть, это захватывает 'eventstartdate', удаляет время (устанавливается на 00:00:00)

Затем он сравнивается с текущей датой (dtnow) и, если она меньше текущей даты, меняет ее на текущую дату (фактически, прошлых дат нет, только сегодня и далее)

Я не программист на Java, и я считаю, что в Painless изменилась обработка данных, так что хотите преобразовать вышеперечисленное?

Спасибо

1 Ответ

0 голосов
/ 04 июля 2018

Исправлено с помощью:

Instant startDate = Instant.ofEpochMilli(doc.eventstartdate.date.millis);
long startDateMS = startDate.truncatedTo(ChronoUnit.DAYS).getEpochSecond() * 1000;
def d = (startDateMS<params.dtnow?params.dtnow:startDateMS);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...