Rails TZInfo :: Помощь по часовым поясам - PullRequest
1 голос
/ 02 августа 2010

Я использую Rails TZInfo::Timezone

Как я могу добавить новый город в этом.

Например: я хочу показать часовой пояс «Вашингтон, округ Колумбия» в моем приложении, но для этого города нет сопоставления

Я получаю все часовые пояса, используя TZInfo::Timezone.get() метод

Пожалуйста, дайте некоторое экспертное предложение.

1 Ответ

0 голосов
/ 25 декабря 2014

Это немного сложнее, но вы можете использовать геокодер для определения широты и долготы города, а затем использовать его для получения часового пояса от geonames.org.Вот пример в Ruby:

search_location = 'Washington, DC'

geocoder_results = Geocoder.search(search_location)
# This assumes the city name will always get results from geocoder
nearest_lat = geocoder_results[0].latitude
nearest_lon = geocoder_results[0].longitude

resp = Net::HTTP.get_response(URI.parse('http://api.geonames.org/timezoneJSON?lat=' + nearest_lat.to_s + '&lng=' + nearest_lon.to_s + '&username=your_user_name_here'))
geonames_tz_info = JSON.parse(resp.body)
city_time_zone = geonames_tz_info['timezoneId']

time_zone = TZInfo::Timezone.get(city_time_zone)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...