基于位置的时区检索

2022-09-04 22:39:46

给定:LDAP 存储用户的位置。

如何使用其位置驱动其时区?任何指针都被接受,Java语言是首选。

提前致谢。


答案 1

这取决于“位置”包含的信息?您需要以某种方式将位置映射到时区名称,最好是 Olson 样式的时区名称,因为它们更详细,更易于映射,因为它们本身就是位置。

如果它是一个近似的地址(如国家和城市左右),那么一些地理定位服务确实在其信息中包含时区,因此您可以调用这些服务并查看。

如果它是具有纬度和经度的地理位置,那么一个名为Earthtools的网站可以为您提供时区。http://www.earthtools.org/webservices.htm#timezone

这个数据库提供从城市和国家到时区的映射:http://citytimezones.info/cms/pending_requests.htm

不幸的是,它使用Windows时区名称,但您可以从 Unicode.org http://unicode.org/repos/cldr/trunk/common/supplemental/windowsZones.xml 此数据,以在Windows时区名称和Olson TZ名称之间进行映射。


答案 2

我实际上还没有这样做,但以下应该有效:

  1. 您可以首先使用GeoGoogle Java库从城市 - 州 - 国家/地区获取经度/纬度。

  2. 接下来,您可以使用Lennart提到的EarthTools(以及您自己的一些java代码)来获取时区:)


推荐