如何根据地址获取当前时间? C#

时间:2013-09-27 17:01:38

标签: c# datetime

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

即。如果是中午12:00(MN)在凤凰城AZ的时间是几点?

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

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

1 个答案:

答案 0 :(得分:4)

如果不依赖外部Web服务,就无法以通用方式执行此操作。实际上你需要两个 - 首先你需要将地址地理编码为地图上的坐标。然后在坐标处找出时区和日光节约规则。

Google最近开始提供时区服务,所以这在小批量上相对容易。您需要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 它按原样提供,可以根据坐标立即返回格式化的本地时间。您仍然需要对地址进行地理编码。

大卫在这里提到的答案Mapping US zip code to time zone可以简单地将州或邮政编码映射到时区 - 你确实需要邮政编码,因为有些州并不那么简单(即一个州)。显然,这是一个仅限美国的解决方案。