elasticsearch聚合中的动态时区偏移?

Posted

技术标签:

【中文标题】elasticsearch聚合中的动态时区偏移?【英文标题】:Dynamic time zone offset in elasticsearch aggregation? 【发布时间】:2014-10-24 01:27:19 【问题描述】:

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

我正在尝试根据当地时间而不是 UTC 或固定时区(例如,使用选项 "time_zone": "America/Los_Angeles")进行 date_histogram aggregation

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

这是简单的聚合:


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

【问题讨论】:

您找到解决方案了吗?我知道这很旧,但我处于完全相同的位置,并想在发布其他重复的问题之前进行检查。 【参考方案1】:

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

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

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

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

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

现在你可以对这个字段进行操作了。

【讨论】:

【参考方案2】:

我不确定我是否完全理解它,但似乎time_zone property 就是为此:

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

【讨论】:

以上是关于elasticsearch聚合中的动态时区偏移?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过Elasticsearch 6.x中的动态或未知字段进行聚合

.NET 通过时区名称获取时区偏移量

Elasticsearch聚合后分页

PostgreSQL 中的本地时区偏移量

jdbc PostgreSQL 中的偏移时间(带时区的时间)

javascript显示中的时区偏移