同じ問題が発生し、上記の優れた提案に加えて、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"
}
地域のタイム ゾーンは、さまざまな理由で変更される可能性があります。そのため、キャッシュではなく、信頼できるサーバーベースのソリューションを見つけることをお勧めします。詳細については、ウィキペディアのタイム ゾーンの記事を参照してください。