1

我试图找出一种方法来获取地址的当前时间,甚至只是一个州或邮政编码。

即,如果这里是中午 12:00 (MN),亚利桑那州凤凰城几点钟了?

理想情况下,它会考虑夏令时。

我想在不依赖外部网络服务的情况下做到这一点。

4

1 回答 1

5

如果不依赖外部 Web 服务,就不可能以通用方式做到这一点。事实上,您需要两个 - 首先您需要将地址地理编码为地图上的坐标。然后找出坐标处的时区和夏令时规则。

谷歌最近开始提供时区服务,所以在小批量时这相对容易。你需要https://developers.google.com/maps/documentation/geocoding/https://developers.google.com/maps/documentation/timezone/ 新的时区api接受timeStamp参数并返回dstOffset,可以转换到/从 DateTime 像这样https://stackoverflow.com/a/7844741/467198

或者,这里有非谷歌服务 http://www.earthtools.org/webservices.htm ,它按原样提供,可以根据坐标立即返回格式化的本地时间。您仍然需要对您的地址进行地理编码。

大卫在这里提到的将美国邮政编码映射到时区的答案是简单地将州或邮政编码映射到时区——尽管您确实需要邮政编码,因为有些州并不是那么简单(即一个州)。显然,这是一个仅限美国的解决方案。

于 2013-09-27T17:13:47.717 回答