我使用Rails TZInfo::Timezone
我怎么能在这里添加新城市。
例如:我想在我的应用程序中显示“华盛顿特区”时区,但该城市没有可用的映射。
我使用TZInfo::Timezone.get()
方法
请提供一些专家建议。
答案 0 :(得分:0)
这有点牵扯,但您可以使用地理编码器获取城市的纬度和经度,然后使用它来获取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)