Динамическое смещение часового пояса при упругой агрегации?
Я собираю документы, каждый из которых имеет метку времени. Временная метка - 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". Другой вариант - указать часовой пояс, принятый в качестве одного из значений, перечисленных здесь.