6

我正在汇总每个都有时间戳的文档。时间戳是 UTC,但每个文档也有一个本地时区 ( "timezone": "America/Los_Angeles"),该时区在文档之间可能不同。

我正在尝试date_histogram aggregation基于本地时间,而不是 UTC 或固定时区(例如,使用 option "time_zone": "America/Los_Angeles")。

如何在聚合之前将每个文档的时区转换为其本地时间?

这是简单的聚合:

{
  "aggs": {
    "date": {
      "date_histogram": {
        "field": "created_timestamp",
        "interval": "day"
      }
    }
  }
}
4

2 回答 2

0

我不确定我是否完全理解它,但似乎该time_zone属性将用于:

zone 值接受小时偏移的数值,例如:“time_zone”:-2。它还接受小时和分钟的格式,例如“time_zone”:“-02:30”。另一种选择是提供一个被接受为此处列出的值之一的时区。

于 2015-05-15T23:28:40.077 回答
0

如果您存储另一个没有时区信息的本地时间字段,它应该可以工作。

获取您拥有的每个时间戳(以 UTC 为单位),将其转换为本地时区中的日期(这将包含时区信息)。现在只需从此日期时间删除时区信息。现在您可以在这个新字段上执行操作。

假设您从 UTC 时间开始:'2016-07-17T01:33:52.412Z'

现在,假设您在 PDT 中,您可以将其转换为:'2016-07-16T18:33:52.412-07:00'

现在,砍掉最后,最终得到:'2016-07-16T18:33:52.412Z'

现在您可以在该字段上进行操作了。

于 2016-07-17T01:36:54.150 回答