Web サービス - 都市の現在のタイムゾーン?
-
09-06-2019 - |
質問
(米国) 都市の現在のタイムゾーン設定を取得する何らかの (またはその他の) Web サービスはありますか。夏時間に従わず、基本的に他の地域が夏時間と冬時間を切り替えているときにタイムゾーンをジャンプする国の一部の場合...私は、夏時間に従わない場所の独自のデータベースを作成する気はありません。このデータをオンデマンドで取得する方法はありますか?
これはデータベース サーバー (クライアント ワークステーションではなく) に必要です。データベースには、City、State をプロパティとして持つエンティティが保存されています。これらのエンティティの現在のタイムゾーンをいつでも知る必要があります。
解決
Earthtools.org は、都市からタイムゾーンを取得する無料の Web サービスをここで提供しています。
http://www.earthtools.org/webservices.htm#timezone
次のように経度/緯度の値を渡すだけです。(これはニューヨークのものです)
http://www.earthtools.org/timezone-1.1/40.71417/-74.00639
編集:
アースツールは閉鎖されたようです。優れた代替手段 (この質問が回答された 2008 年には存在しませんでした) は、Google Time Zone API です。それを使用するには、まず次のことを行う必要があります タイムゾーンAPIを有効にする あなたのアカウントで。以下の制限を下回る場合は無料です。
- 24 時間あたり 2500 件のリクエスト。
- 1 秒あたり 5 リクエスト。
ドキュメント Google Developers で入手できます。
他のヒント
私たちも同じ問題に遭遇しましたが、上記の素晴らしい提案に加えて、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) ジオコーディングされた位置をローカルのタイムゾーンとオフセット (存在する場合) に変換します。
現在のタイムゾーン情報を返します。
{
"status": "OK",
"dstOffset": 0.0,
"rawOffset": -28800.0,
"timeZoneId": "America/Los_Angeles",
"timeZoneName": "Pacific Standard Time"
}
地域のタイムゾーンは、さまざまな理由で変更される可能性があります。したがって、キャッシュではなく、信頼できるサーバーベースのソリューションを見つけることをお勧めします。詳細については、を参照してください。 ウィキペディアのタイムゾーンの記事.
Geonames.org には、Web サービスまたはダウンロードを通じて利用できる素晴らしい世界データのセットがあります。
http://www.geonames.org/export/ws-overview.html
特に
http://www.geonames.org/export/web-services.html#timezone
.
Earthtool のタイムゾーン情報は最新ではありません...たとえば、スリランカの現在のオフセットは GMT から +5.5 ですが、EarthTools では 2005 年以前の古いオフセットである +6 と表示されます。
私は提案します GeoNames.org.
WorldTimeServer.com には、包括的なタイム ゾーン データベースのように見えるものがあり、Web 用の .NET コンポーネントなど、さまざまな形式でアクセスを購入できます。
関係はありません。最近、同じことを自分で調べなければなりませんでした。
誰かがこの質問に遭遇した場合に備えて。
Google API を使用して住所を検索できます。緯度/経度を返します。これらの値を入手すると、たとえば次のように使用して最も近いタイムゾーンを見つけることができます。PHP。
または、timezoneapi.io (私がサポートしています) のような API を使用して、住所/都市/国を検索することもできます。これは、アドレス、タイムゾーン情報、および指定されたタイムゾーンの現在の日付/時刻を返します。
無料でダウンロードできるデータベースをここで見つけました。 http://citytimezones.info/
編集] ...ただし、Olson DB に基づくより正確な情報 (ソースを含む) はここで見つけることができます。 http://en.wikipedia.org/wiki/Tz_database
これが回答されていることは知っていますが、人々がまだ役に立つと思うかもしれないので、この回答を投稿しています。選択された回答は現在正常に機能しません。
Google には独自のサービスがあり、非常に信頼性が高く使いやすく、JSON 形式で情報を出力します。カスタム時刻を指定することもできます。たとえば、マルタの 2013 年 2 月 2 日のタイムゾーンを取得します。
Google、1 日あたり 2500 件の無料リクエストhttps://developers.google.com/maps/documentation/timezone/