我有一个针对Elasticsearch的搜索查询,该查询使用了需要转换为无痛语言的groovy内联脚本
mdt= doc.eventstartdate.value;
dtevent = new DateTime(mdt).withTime(0,0,0,0).getMillis();
d = (dtevent<dtnow?dtnow:dtevent);
如您所见,它抓住了“ eventstartdate”,剥离了时间(设置为00:00:00)
然后将其与当前日期(dnow)进行比较,如果小于当前日期,则将其更改为当前日期(实际上没有过去的日期,仅从今天开始)
我不是Java程序员,而且我相信Painless中的日期处理已发生变化,因此希望转换上述内容吗?
谢谢
答案 0 :(得分:0)
解决此问题:
Instant startDate = Instant.ofEpochMilli(doc.eventstartdate.date.millis);
long startDateMS = startDate.truncatedTo(ChronoUnit.DAYS).getEpochSecond() * 1000;
def d = (startDateMS<params.dtnow?params.dtnow:startDateMS);