我正在聚合每个都有时间戳的文档。时间戳是UTC,但每个文档都有一个本地时区("timezone": "America/Los_Angeles"
),不同文档之间的时区可能不同。
我试图根据当地时间而不是UTC或固定时区(例如,使用选项"time_zone": "America/Los_Angeles"
)来执行date_histogram aggregation
。
如何将每个文档的时区转换为聚合前的本地时间
以下是简单的聚合:
{
"aggs": {
"date": {
"date_histogram": {
"field": "created_timestamp",
"interval": "day"
}
}
}
}
我不确定我是否完全理解它,但time_zone
属性似乎是这样的:
区域值接受小时偏移量的数值,例如:"time_zone":-2。它还接受小时和分钟的格式,如"time_zone":"-02:30"。另一种选择是提供一个时区,作为此处列出的值之一。
如果存储另一个没有时区信息的本地时间字段,它应该可以工作。
取您拥有的每个时间戳(以UTC为单位),将其转换为本地时区的日期(其中将包含时区信息)。现在只需从这个日期时间中删除时区信息。现在,您可以在此新字段上执行操作。
假设您从UTC的这个时间开始:‘2016-07-17T01:33:52.412Z’
现在,假设您在PDT中,您可以将其转换为:'2016-07-16T18:33:52.412-07:00'
现在,砍掉末端,这样你就可以得到:‘2016-07-16T18:33:52.412Z’
现在你可以在这个场地上操作了。