Мы столкнулись с той же проблемой, и, помимо замечательных предложений, приведенных выше, у Google, похоже, есть два взаимодополняющих API, один для часового пояса из данных геокодирования (широта / долгота) и 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"
}
Часовые пояса для региона могут меняться по разным причинам. Так что неплохо бы найти авторитетное решение на основе сервера, а не кеш. Для получения дополнительной информации см. Статья о часовом поясе Википедии .