如何获取国家/地区的时区信息?

时间:2009-05-14 14:32:54

标签: asp.net .net

如何获取某个国家/地区的时区信息?

6 个答案:

答案 0 :(得分:2)

有趣的你应该问。见A REST Client Library for .NET, Part 1。它指的是一个网站和一组Web服务,它们返回基于位置的数据,包括时区信息。

答案 1 :(得分:1)

正如其他人所说,这是一个不断变化的目标。我发现这个网站非常有用:

http://www.timeanddate.com/worldclock/

您可以从那里获取UTC偏移量,如果您真的很认真,请做一些预定的抓取以保持最新状态。几年前我用它来在我公司的门户页面上进行一系列世界时间,以展示公司在全球主要办事处的时间。

答案 2 :(得分:1)

消耗时区数据时要记住几件事:

  1. 时区数据是特定于位置的...您是谁在显示时区信息?用户的?客户的?

  2. 时区数据还包括名为夏令时这个有趣的东西,这意味着您的时区计算将根据您计算它们的日期而改变。

    1. 计算6月费城的时间与计算12月的时间不同。
    2. 并非所有市政当局都遵守夏令时......
  3. 时区数据变化非常频繁例如,美国在夏令时开始和结束时大约2年前改变了......澳大利亚已经通过了过去2的法律确定何时开始和结束各州的情况。

  4. 我的建议:生效日期您的时区计算表...因为这些事情发生了变化,您需要能够准确计算任何时间点的时间,您需要知道时区标准是什么时间点。

    将所有时间以UTC格式存储在数据库中

答案 3 :(得分:0)

这可能不能回答你的问题,但这里有一个讨论这些问题的论坛:get timezone from country name asp.net

答案 4 :(得分:0)

This web site包含指向所有常用时区数据的链接。 tz数据库是个好看的地方。一般来说,您需要知道该国家/地区的位置,而不仅仅是国家/地区。

答案 5 :(得分:0)

正如其他人所指出的那样,如果你只是根据一个国家进行猜测,那么实际上没有什么好办法可以做到这一点,因为某个国家很可能在一个以上的时区内。 / p>

由于ASP.NET位于标记列表中,因此我会想到你正在编写某种类型的Web应用程序。在这种情况下,最好的选择,也可能是最可靠的选择就是让用户具有特定的时区。一旦你知道了用户指定的时区,就可以随心所欲地做任何事情。

下一个选项是John Saunders在帖子中引用的选项,即使用EarthTools等服务查找位置并获取时区信息。这里唯一的问题是你通常需要能够到达一个城市和国家来过滤结果,你必须要小心,因为同一个国家的同一个国家可能有多个同名的城市。

最后,如果您愿意接受结果可能有时会出错,但是没有一个好方法允许用户指出它们在哪里,您可以尝试进行反向IP查找以尝试猜测用户计算机所在的位置。然后,您可以将此信息提供给前面提到的EarthTools以获取时区信息。但是,实际上没有办法保证这是准确的。

最后要注意的一点是,如果您在公司广域网内部,那么您可以更轻松地完成反向IP查找,因为您可以访问广域网的布局,而且可能只有一个给定IP地址来自的简短列表。