54

(米国)都市の現在のタイムゾーン設定を取得するための何らかの(またはその他の方法の)Web サービスはありますか。夏時間に従わず、他の人が夏時間と冬時間を切り替えているときに基本的にタイムゾーンをジャンプする国の一部については... DSTに従わない場所の独自のデータベースを作成することは好きではありません. このデータをオンデマンドで取得する方法はありますか?

これは、データベース サーバー (クライアント ワークステーションではなく) に必要です。データベースには、プロパティとして市、州を持つエンティティが格納されています。これらのエンティティの現在のタイムゾーンをいつでも知る必要があります。

4

8 に答える 8

74

同じ問題が発生し、上記の優れた提案に加えて、Google には 2 つの補完的な API があるようです。1 つはジオコード (緯度/経度) データからのタイム ゾーン用で、もう 1 つはジオコード API です。

たとえば、サンフランシスコのタイム ゾーンとオフセットを取得するには、次のようにします。

1) 都市をジオコーディングされた場所に変換します。

http://maps.googleapis.com/maps/api/geocode/json?address=San%20Francisco,+CA&sensor=false

ジオコーディングされた場所は、JSON の戻りデータにあります。

"location": {
    "lat":  37.77492950,
    "lng": -122.41941550
}

2) ジオコーディングされた場所をローカルのタイムゾーンとオフセットに変換します (存在する場合):

https://maps.googleapis.com/maps/api/timezone/json?location=37.77492950,-122.41941550×tamp=1331161200&sensor=false

現在のタイムゾーン情報を返します。

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

地域のタイム ゾーンは、さまざまな理由で変更される可能性があります。そのため、キャッシュではなく、信頼できるサーバーベースのソリューションを見つけることをお勧めします。詳細については、ウィキペディアのタイム ゾーンの記事を参照してください。

于 2013-02-20T19:33:12.343 に答える
47

earthtools.org は、都市からタイム ゾーンを取得するための無料の Web サービスを提供しています。

http://www.earthtools.org/webservices.htm#timezone

次のように経度/緯度の値を渡すだけです: (これはニューヨークの場合です)

http://www.earthtools.org/timezone-1.1/40.71417/-74.00639


編集:

Earthtools がシャットダウンされたようです。良い代替手段 (この質問が回答された 2008 年には存在しませんでした) は、Google Time Zone API です。これを使用するには、まずアカウントでTime Zone APIを有効にする必要があります。これらの制限を下回る場合は無料です。

  • 24 時間あたり 2500 件のリクエスト。
  • 1 秒あたり 5 リクエスト。

ドキュメントは Google Developers で入手できます。

于 2008-09-11T06:43:53.320 に答える
16

Geonames.org には、Web サービスまたはダウンロードを介して入手できる世界的なデータの素晴らしいセットがあります。

http://www.geonames.org/export/ws-overview.html

特に

http://www.geonames.org/export/web-services.html#timezone

.

于 2008-09-11T07:14:13.733 に答える
7

Earthtool のタイムゾーン情報は最新ではありません。たとえば、スリランカの現在のオフセットは GMT から +5.5 ですが、EarthTools では 2005 年より前の古いオフセットである +6 と表示されます。

GeoNames.orgをお勧めします。

于 2011-11-24T08:56:28.867 に答える
5

WorldTimeServer.comには包括的なタイム ゾーン データベースのように見えるものがあり、Web 用の .NET コンポーネントなど、さまざまな形式でアクセスを購入できます。

接続がありません。最近、同じことを自分で調査する必要がありました。

于 2008-09-11T06:43:56.660 に答える
1

誰かがこの質問に出くわした場合に備えて。

  • Google API を使用して住所を検索できます。緯度/経度を返します。これらの値があれば、PHP などを使用して最も近いタイムゾーンを見つけることができます。

  • または、timezoneapi.io のような API を使用することもできます (私はその背後にあります)。これにより、住所、都市、国を検索できます。指定されたタイムゾーンのアドレス、タイムゾーン情報、および現在の日付/時刻を返します。

https://timezoneapi.io/developers/address

于 2017-01-05T01:27:30.950 に答える
0

これが回答されていることは知っていますが、人々がまだ役に立つと思うかもしれないので、この回答を投稿しています - 選択した回答は現在うまくいきません。

Google には、非常に信頼性が高く使いやすい独自のサービスがあり、JSON 形式で情報を出力します。カスタムの時間を指定することもできます。たとえば、マルタで 2013 年 2 月 2 日のタイムゾーンを取得します。

https://developers.google.com/maps/documentation/timezone/

于 2013-04-26T16:30:17.703 に答える