首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用经度、纬度和日期时间的地方的未来本地时间

使用经度、纬度和日期时间的地方的未来本地时间
EN

Stack Overflow用户
提问于 2010-07-08 04:45:50
回答 3查看 2.3K关注 0票数 3

我正在开发一个旅行应用程序。

为此,我需要使用日期时间(未来的日期)、经度和纬度来计算一个位置的未来本地日期时间。(例如:我想计算8月10日-2010年上午11点23分的一个地点的当地日期。由于日照节省时间,日期偏移可能会改变,所以我需要将8月10日-2010年上午11点23分转换为当地时间的位置),我有输入经度,纬度和日期时间。i可以使用经度和纬度计算当前的本地日期,但由于日照节省时间设置**,所以无法精确计算**未来日期。离集可能在未来的日期不同。

我正在使用asp.net和c#。

有人能帮忙吗?

EN

回答 3

Stack Overflow用户

发布于 2010-07-08 05:00:11

下面是微软关于DateTime在.NET的最佳实践的文章,它涵盖了日照节约时间的本地化。

简而言之,确保您使用的是通用时间和GMT偏移量。这个

代码语言:javascript
复制
DateTime.ToUniversalTime()

方法将任何现有的DateTime对象转换为UTC版本。请记住,UTC根据经度来偏移工作--主要经络是经度零,所以有GMT偏移量= 0。对于加利福尼亚,你的GMT偏移量将是负800。

此外,您还可以获取浏览器的区域设置,并根据该区域确定时区:

http://madskristensen.net/post/Get-language-and-country-from-a-browser-in-ASPNET.aspx

票数 1
EN

Stack Overflow用户

发布于 2010-07-08 05:23:44

我怀疑这将是相当困难的-我不知道有任何服务将纬度和经度转换为时区名称。

  • 了解标准偏移量和DST偏移量没有帮助,因为您将不知道它们何时应用。
  • 仅仅了解这个国家(甚至是国家和语言)是没有帮助的,因为你不会知道这个地区。
  • 即使有了确切的位置,你也必须有一个非常精确的服务,把地球上每一个可能的点映射到正确的时区。

您最好使用一些启发式方法来猜测哪些时区是可能的,然后询问用户它实际上是哪一组时区。目前,您最好的选择可能是使用TimeZoneInfo:当野田时间准备好用于生产时,这将是一个更好的选择。(我希望--这是我的项目。)

一旦获得了TimeZoneInfo (或Noda Time ITimeZone),其余的就相对容易使用DateTimeDateTimeOffset (或Noda中的ZonedDateTime )。它得到的时区是正确的开始,这是很棘手的。

编辑:我刚找到这个问题,这表明Geonames可能是你的朋友。不过,如果这为您提供了Olson时区名称,我也不会感到惊讶--所以您必须使用转换器来计算Windows时区ID,或者类似的东西。(如果您有兴趣使用Noda的预发行版,请告诉我;这部分内容相当稳定。)

请注意,由于政治上的变化,你的问题不能得到肯定的回答。有时,政府会在几乎没有任何预警的情况下对时区做出改变。例如,几年前,阿根廷发出11天通知表示他们不会观察DST。此外,政治界限会随着时间的推移而移动。基本上你得希望那不会发生。

票数 1
EN

Stack Overflow用户

发布于 2010-07-08 04:58:17

我想你是用经度来计算GMT偏移量,但听起来你需要做的是这样的事情。

  1. 使用Lat,长时间计算出目的地是哪个国家(地区)
  2. 使用该区域获取未来的日期,并查看它的GMT偏移量,包括任何DST偏移量(我已经很久没有看过这是C#了,但我确信这是非常明显的)。
  3. 一旦您知道GMT和DST偏移了地区,它应该是相当简单的完成任何您需要做的事情。

请记住,DST是由一个国家控制的,通常是由立法控制的,而且会发生变化。大多数日期代码库试图保持此信息的最新,但它可以在短期内改变。例如:在2000年,新南威尔士州,在澳大利亚,改变了它的DST,使奥运会更容易为美国和欧洲观众。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3200722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档