首页 > 解决方案 > 如何在源脚本中格式化日期?

问题描述

我正在使用terms带有属性的聚合script,我知道我可以使用format属性来获取特定日期格式的日期值;但我想编写所需的格式以获取脚本源代码。

{
  "size": 0,
  "aggs": {
    "NAME": {
      "terms": {
        "script": {
          "source": "doc['Ship Date'].value",
          "lang": "painless"
        },
        "size": 100,
        "order": {
          "_key": "asc"
        }
      }
    }
  }
}

标签: elasticsearch

解决方案


您可以执行以下操作

"size": 0,
  "aggs": {
    "NAME": {
      "terms": {
        "script": {
          "source": "String datetime = 'Thu, 13 Oct 1983 22:15:30 GMT';ZonedDateTime zdt = ZonedDateTime.parse(datetime,DateTimeFormatter.RFC_1123_DATE_TIME); return zdt ",
          "lang": "painless"
        },
        "size": 100,
        "order": {
          "_key": "asc"
        }
      }
    }
  }

您可以将不同的格式解析为 ZonedDateTime.parse() 您可以在此处获得完整的详细信息


推荐阅读