检索"时间"时区错误场?

时间:2016-09-16 12:23:04

标签: getstream-io

手册specifies该唯一性基于foreign_idtime字段。

我有一个用户加入特定事件的活动。该事件有自己的开始日期,我希望在时间轴中显示,因此我将其作为额外数据(以及名称和位置等)提交,但我在此省略了这些以防止混乱。 我将带有以下活动数组的活动提交给用户Feed。请注意我在阿姆斯特丹,这是(目前)在GMT + 0200的时区:

Array
(
    [actor] => User:3
    [verb] => join
    [object] => Event:2
    [event_start] => 2016-09-26T19:00:00+0200
    [to] => Array
        (
            [0] => notification:2
        )

    [foreign_id] => join:2
    [time] => 2016-09-16T13:29:13+0200
)

当我检索用户时#39;用户提要,这又回来了:

{  
   "duration":"17ms",
   "next":"",
   "results":[  
      {  
         "actor":"User:3",
         "event_start":"2016-09-26T19:00:00+0200",
         "foreign_id":"join:2",
         "id":"cb0f4a80-7c00-11e6-8080-80010479bedb",
         "object":"Event:2",
         "origin":null,
         "target":null,
         "time":"2016-09-16T11:29:13.000000",
         "to":[  
            "notification:2"
         ],
         "verb":"join"
      }
   ]
}

注意日期字段的差异。两者都作为ISO8601字段提交,但只返回event_start字段。 time字段以不同的格式返回,但没有任何时区指示符。它显然已转换为UTC时间,但缺少the trailing Z that should indicate that。因此,我无法可靠地将其用作时间指示器。

我可以通过向活动数组添加另一个时间字段来解决这个问题(工作正常并返回正确的ISO8601日期),但这感觉非常多余。

这是一个错误,我做错了什么,或者我们不应该依赖time字段来指示活动何时发生?

1 个答案:

答案 0 :(得分:2)

API v1.0将time字段存储在UTC时区中,但遗憾的是它没有正确返回尾随Z。这将在以后的API版本中修复,但不会在此版本中修复。

您可以放心地在查询API时始终将time字段作为UTC返回。