1

ドキュメントを見ると、timeZoneに関して、クエリAPIのチェックインオブジェクトとプッシュAPIのデータの間に不一致があります。

https://developer.foursquare.com/overview/realtimeによると、サンプル プッシュには、America/New_York などの tz の名前が含まれます。

ただし、https://developer.foursquare.com/docs/responses/checkin (および API エクスプローラー) によると、チェックイン オブジェクトには timeZone オフセット (GMT+1 の場合は 60) が含まれます。

SSL証明書をセットアップする必要があるため、プッシュAPIの内容をまだ確認できていません。ドキュメントが正しいことを誰でも確認できますか。実際に2種類のtz形式があります。図とは異なり、これは夏時間によって変化しないため、オフセットではなく timeZone を含める方がよいと考えていました。ヨーロッパ/ロンドンは常に一定で、オフセットは 0 ~ 60 分の間で切り替わります。

4

2 に答える 2

0

私は FourSquare の API に直接精通しているわけではないので、これを確認したり否定したりすることはできません。ただし、両方を使用する場合が多いと言えます。

データが特定の時間を表している場合は、オフセットのみを提示しても問題ありません。チェックイン応答はcreatedAtエポック (別名「Unix タイムスタンプ」) からの整数秒として日付/時刻を提供するため、別のオフセットを提供することが適切です。(ただし、オフセットを分単位の整数としてではなく、文字列として提供することは興味深いと思います。) これを行う別の方法はDateTimeOffset、通常は2013-06-02T01:23:45-07:00. どちらでも構いません。

しかし、ご存知かもしれませんが、オフセットはタイム ゾーンを一意に識別しません。単一のイベントの場合は、その必要はありません。ただし、イベントが繰り返し発生する場合、または時間の値を変更する可能性がある場合は、オフセットだけでは十分ではありません。その場合、完全なゾーン識別子が必要になります。

などのゾーン識別子がある場合はAmerica/New_York、任意の日付/時刻の正しいオフセットをいつでも確認できます。しかし、誰もが TZDB の実装をすぐに利用できるわけではありません。たとえば、Windows 上の .Net では、Microsoft の扱いにくいタイム ゾーン データベースがデフォルトで取得されます。TZDB ゾーンを使用する場合は、ライブラリ ( NodaTimeなど) を見つける必要があります。

同じタイプのアクション (チェックイン) のプッシュとプルが、異なる API を使用しているという理由だけで異なる値になるのは奇妙に思えます。私の (Foursquare への) アドバイスは 3 つあります。

  • プッシュとプルに関係なく、同じアクティビティのデータについて一貫性を保ちます。
  • イベントに関連付けられた TZDB 識別子と UTC オフセットの両方を提供します。
  • イベントのタイムスタンプとオフセットを、UNIX 時間の整数ではなく、ISO8601 形式の文字列として単一の値で提供します。
于 2013-06-02T04:26:53.887 に答える