Динамическое смещение часового пояса при упругой агрегации?

Я собираю документы, каждый из которых имеет метку времени. Временная метка - UTC, но у каждого документа также есть местный часовой пояс ("timezone": "America/Los_Angeles") которые могут быть разными в разных документах.

Я пытаюсь сделать date_histogram aggregation на основе местного времени, а не UTC или фиксированного часового пояса (например, с использованием опции "time_zone": "America/Los_Angeles").

Как я могу преобразовать часовой пояс для каждого документа в местное время до агрегации?

Вот простая агрегация:

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

2 ответа

Если вы храните другое поле по местному времени без информации о часовом поясе, оно должно работать.

Возьмите все ваши временные метки (которые указаны в UTC), конвертируйте их в дату в местном часовом поясе (она будет содержать информацию о часовом поясе). Теперь просто удалите информацию о часовом поясе с этой даты. Теперь вы можете выполнять действия на этом новом поле.

Предположим, вы начинаете с этого времени в UTC: "2016-07-17T01: 33: 52.412Z"

Теперь, предположим, что вы находитесь в PDT, вы можете преобразовать его в: '2016-07-16T18:33:52.412-07: 00'

Теперь, взломайте конец, чтобы получить "2016-07-16T18: 33: 52.412Z"

Теперь вы можете работать на этом поле.

Я не уверен, что я полностью понимаю это, но кажется, что time_zone свойство будет для этого:

Значение зоны принимает либо числовое значение для смещения часов, например: "time_zone": -2. Он также принимает формат часов и минут, например, "time_zone": "-02:30". Другой вариант - указать часовой пояс, принятый в качестве одного из значений, перечисленных здесь.

Другие вопросы по тегам