从纬度和经度获取 Windows TimeZoneInfo

2024-04-28

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

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

  • http://www.askgeo.com/ http://www.askgeo.com/
  • http://www.geonames.org/ http://www.geonames.org/
  • http://www.earthtools.org/ http://www.earthtools.org/

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

以下链接中有一个列表翻译从 Windows 到 TZID 名称,但不是相反的方向,因为许多 TZID 名称丢失。例如,如果我从第一步获得的 TZID 是“非洲/卢萨卡”,则该表将找不到等效的 Windows 时区名称。

  • Windows -> TZID: http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/zone_tzid.html http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/zone_tzid.html
  • TZID -> Windows: ???

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

Note:我在这里回顾了所有类似的问题,但没有一个完全解决了这个问题。


一种解决方法是获取 Olson 名称,然后使用野田时间 http://noda-time.googlecode.com执行相关时区计算,因为这是基于 Olson 名称的。

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

我希望添加DateTime and DateTimeOffset在接下来的几天内转换为代码库 - 如果您可以 ping 邮件列表并提供您所需要的内容,我可以尽力满足您的需求。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从纬度和经度获取 Windows TimeZoneInfo 的相关文章

  • Sitecore - 隐藏功能区中的按钮

    我为特定内容项创建了上下文功能区 我有两个按钮 可以将项目 升级 或 降级 到某一类别 该部分只能有一个 是否可以根据某种隐藏代码中的内容状态隐藏其中一个按钮 我了解如何链接到 Click 事件 但我想知道是否有某种加载事件可供自定义功能区
  • 有谁知道一种更快的方法来执行 String.Split() 吗?

    我正在读取 CSV 文件的每一行 并且需要获取每一列中的各个值 所以现在我只是使用 values line Split delimiter where line是保存由分隔符分隔的值的字符串 衡量我的表现ReadNextRow我注意到它花费
  • 设置 Form.KeyPreview = true 的缺点?

    我想知道 Form KeyPreview 属性实际上有什么用处 它为什么存在以及将其设置为 true 会带来什么 风险 我想它一定有some负面影响 否则它根本不应该存在 或者至少默认情况下是正确的 EDIT 我很清楚what确实如此 我问
  • 当我使用 Image.FromFile() 时 FileNotFound

    我在这种情况下使用 Image FromFile string 方法 using System using System Collections Generic using System ComponentModel using Syste
  • .NET“默认行终止符”?

    有什么方法可以弄清楚 NET 使用什么作为其 默认行终止符 例如 StringBuilder AppendLine String 的文档表示 附加指定字符串的副本 后跟默认行终止符 NET 中的几个与文本相关的类引用相同的概念 有什么方法可
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • VB.NET 中的静态方法实现

    我很困惑Static在 VB NET 中的实现 在 C 中 我们可以创建静态类和静态方法来为我们的应用程序编写实用方法 现在 VB NET 让我们创建Module代替静态类 如果我们在模块中创建一个方法 默认情况下它会变成静态的 但在我的应
  • 引用的程序集自动由 Visual Studio 替换

    我有 2 个项目 一个可移植类库和一个常规单元测试项目 在可移植类库中 我使用 NuGet 来引用 Microsoft BCL 可移植包 它附带 2 个程序集 System Threading Tasks dll and System Ru
  • 取消任务

    我尝试运行一个关于取消任务的简单示例 如下所示 CancellationTokenSource tokenSource2 new CancellationTokenSource CancellationToken token2 tokenS
  • SQLite .NET 性能,如何加快速度?

    在我的系统上 约 86000 个 SQLite 插入需要长达 20 分钟 意味着每秒约 70 个插入 我要做数百万 我怎样才能加快速度 对每一行的 SQLiteConnection 对象调用 Open 和 Close 会降低性能吗 交易有帮
  • 防止重入并确保某些操作获取锁的正确方法是什么?

    我正在设计一个基类 当继承该基类时 它将针对多线程环境中的上下文提供业务功能 每个实例可能都有长时间运行的初始化操作 所以我想让这些对象可重用 为此 我需要能够 为这些对象之一分配上下文以允许其完成工作 防止对象在已有上下文的情况下被分配新
  • 家庭自动化图书馆[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是一名 C 开发人员 希望将家庭自动化作为一种 爱好 我做了一些研究 但想知道是否有人知道支持 In
  • 如何有效确保小数值至少有 N 位小数

    我想在进行算术运算之前有效地确保十进制值至少有 N 个位置 在下面的示例中 3 显然我可以格式化 0 000 然后解析 但它的效率相对较低 我正在寻找一种避免与字符串转换的解决方案 我尝试过以下解决方案 decimal d 1 23M d
  • 由于索引无效,无法加载计数器名称数据 -Exception

    我使用 C 和 WPF 操作系统是 windows 7 Professional 和 Visual Studio 2012 SQL Server 2012 我在wpf中使用了Devexpress Grid 我想使用 ADO Net 服务器模
  • 如何计算最低系统要求?

    对于我用 Visual C 编写的应用程序 Testing 不 真的 这就是全部
  • IEnumerable 与 IReadOnlyList

    选择有什么区别IEnumerable
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐