有人知道如何通过客户端IP获取olson zoneinfo吗?我尝试了一些免费的IP服务,但他们返回的是“纽约”而不是“America / New_York”。
答案 0 :(得分:0)
尝试geoip(http://www.maxmind.com/),它不是免费的,但效果很好,数据库更新经常。 然后,您可以通过来自客户端IP的国家和地区从com.maxmind.geoip.timeZone获取时区信息
String timeZoneByCountryAndRegion(String country, String region)
答案 1 :(得分:0)
您需要将其分为两个步骤。
有许多服务可以从纬度和经度坐标获取IANA / Olson时区标识符。请参阅:How to get a time zone from a location using latitude and longitude coordinates?
要获得经度和纬度,您应该尽量不依赖IP地理位置。许多Web浏览器都在可以报告其真实坐标的实际设备上运行,例如在移动电话上。如果必须,您可以回退到IP地理位置,并且有许多服务试图这样做。
IP地理定位的问题在于您无法保证准确性。许多人通过代理服务器,VPN或其他机制访问互联网,在这些机制中,您正在查找的IP可能实际上与其位置无关。