【问题标题】:Get Windows TimeZoneInfo from Latitude and Longitude从纬度和经度获取 Windows TimeZoneInfo
【发布时间】:2011-08-16 20:00:17
【问题描述】:

在一个网络应用程序中,我让人们输入他们的地址,然后我使用 Google 的地理编码 API 来获取他们的纬度和经度。接下来,我想使用这些坐标获取他们的 Windows 时区名称,以便我可以通过 .Net TimeZoneInfo 对象正确处理 夏令时

我使用了几个可用的时区网络服务来获取时区名称,例如:

问题在于,这些都只返回与 GMT 的偏移量,或 TZID(又名 Olson)时区名称,不是 Windows 时区名称

以下链接中有一个列表翻译从 Windows 到 TZID 名称,但不是相反的方向,因为缺少许多 TZID 名称。例如,如果我从第一步获得的 TZID 是“Africa/Lusaka”,那么该表将找不到等效的 Windows 时区名称。

所以我的问题是,有没有人知道可以通过纬度/经度返回 Windows 时区名称的服务,或者是否有完整的列表或翻译服务在两种命名格式之间进行转换?

注意:我在这里查看了所有类似的问题,但没有一个完全解决了这个问题。

【问题讨论】:

标签: .net geolocation timezone


【解决方案1】:

一种解决方法是获取 Olson 名称,然后使用 Noda Time 执行相关时区计算,因为这是基于 Olson 名称。

我们还没有完全“完成” Noda Time,但我们越来越接近 1.0 版本 - 如果您愿意,您可以随时将自己限制在时区部分,然后在 .网。这将使您与我们仍在整理的任何领域隔离开来,例如格式化、解析和为执行算术公开的最佳 API。诚然,我希望 API 的其余部分能吸引您并吸引您……或者您想对其发表评论并告诉我们您想要如何使用它:)

我希望在接下来的几天内将 DateTimeDateTimeOffset 转换添加到代码库中 - 如果您可以根据您的需要 ping 邮件列表,我可以尝试满足您的需求。

很抱歉,这只是一种解决方法,而不是完整的修复。我将研究在 Noda Time 中提供更多的 Windows 区域名称映射信息——它也使用 CLDR,但使用来自 Olson 数据库的更多信息,我们可能能够轻松找到等效项。

【讨论】:

  • Duke Nukem Forever 将首先完成。
  • @Hans:不,我绝对有决心(并且正在取得进展)——而且 Noda Time 不需要完全完成,只需执行所有所需的时区转换即可,这已经是完成。
  • @Downvoters:想发表评论吗?这在什么方面没有帮助?既然没有其他选择,为什么不使用一小部分野田时间呢?
【解决方案2】:

刚刚在网上找到了这个,这可能是一个解决方案。将进一步调查:

http://www.timdavis.com.au/data/olson-time-zone-database-to-standard-windows-time-zone-v01/

【讨论】:

    猜你喜欢
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    • 2016-09-29
    • 1970-01-01
    相关资源
    最近更新 更多