10

私のクライアントアプリケーションでは、IPに基づいてskyhook APIから緯度と経度の情報を取得しています

次に、緯度と経度の情報に基づいて、クライアントのタイムゾーン情報を見つける必要があります。しかし、Google タイムゾーン API ドキュメントhttps://developers.google.com/maps/documentation/timezone/では、タイムスタンプが必須フィールドであることがわかります。その場合、私は何をする必要がありますか。

また、タイムスタンプが何に対応するのかを理解するのを手伝ってもらえますか? 例:- アプリケーション サーバーが米国 (たとえば、PST タイムゾーン) にあり、サーバーのタイムスタンプを渡す Google API 呼び出しを行う場合。

ユーザーがインドからクライアント アプリケーションにログインして緯度/経度情報を渡し、アプリ サーバーにタイムゾーン情報を取得する場合、API は dstOffset および rawOffset として何を提供しますか? つまり、サーバーのタイムスタンプに dstOffset と rawOffset を追加すると、クライアント マシンのタイムゾーン情報を取得できますか?

4

3 に答える 3

9

私は数分間、Google の Timezone API 、特にタイムスタンプ パラメータについて頭を悩ませてきました。多分これは必要性をレイアウトするでしょう:

サンディエゴでは、夏時間のため (現在は 8 月)、GMT オフセットが -8 になっています。ただし、11 月には GMT オフセットが -7 になります。

では、Google はどの GMT オフセットを返すべきでしょうか? -7 または -8? どちらも有効ですが、測定日によって異なります。

タイムスタンプ引数を入力します。現在サービスを実行し、タイムスタンプ値を August 2015にすると、次の応答が返されます。

{
   "dstOffset" : 3600,
   "rawOffset" : -28800,
   "status" : "OK",
   "timeZoneId" : "America/Los_Angeles",
   "timeZoneName" : "Pacific Daylight Time"
}

しかし、タイムスタンプを 2015 年 11 月に上げると (サンディエゴが夏時間外になると、次のようになります)。

{
   "dstOffset" : 0,
   "rawOffset" : -28800,
   "status" : "OK",
   "timeZoneId" : "America/Los_Angeles",
   "timeZoneName" : "Pacific Standard Time"
}

どちらの場合も rawOffset は同じですが、私が提供したタイムスタンプのために DST が変更されました。生のタイムゾーンを知りたいだけなら、タイムスタンプは関係ありません。

しかし、8 月のサンディエゴの午前 8:00 と 11 月のサンディエゴの午前 8:00 にアプリケーションが確実に何かを実行するようにするには、タイムスタンプを使用する必要があります。

別の言い方をすれば、サンディエゴが通常GMT から -7 時間のオフセットであることを知っていることの価値は何ですか。タイムゾーンを使用している場合は、UTC 時間がその場所にいる実際の人が経験していることと一致するようにしようとしている可能性があります。そのため、DST オフセットは重要です。

于 2015-08-21T14:11:32.960 に答える
3

あなたが提供したドキュメント リンクは、タイムスタンプが UTC でなければならず、正しい DST オフセット値を表示するために使用されることを明確に述べています。また、timeZoneNameフィールドの名前に「Standard」または「Daylight」を付けて表示するかどうかも制御します。

それを気にせず、timeZoneIdフィールドだけが必要な場合は、渡す値は関係ありません。

于 2013-04-12T15:19:45.540 に答える