2016-09-16 16 views
3

specifiesユニークさはforeign_idtimeフィールドに基づいています。「時間」フィールドを取得するときにタイムゾーンのバグがありますか?

私はユーザーが特定のイベントに参加するアクティビティを持っています。イベントにはタイムラインに表示したい独自の開始日がありますので、余分なデータとして送信します(名前や場所なども含みますが、ここではそれらを省略しています)。 次のアクティビティ配列を持つアクティビティをユーザーフィードに送信しました。私は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 
) 

私は、ユーザーのユーザーのフィードことを取得すると、これはバックのように来る:

{ 
    "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

API v1.0は、timeフィールドをUTCタイムゾーンで格納しますが、悲しいことに、末尾にZが正しく返されません。これは、後のAPIバージョンでは修正されますが、今回は修正されません。

APIを照会するときに、timeフィールドが常にUTCとして返されることがあります。

+0

クイック返信、トマソーありがとうございます。プロダクションでAPIの機能を変更することはできないと理解しています。 – Anders

関連する問題