gpt4 book ai didi

java - 计算差异顺便说一句。不同地点/时区的时间(考虑夏令时)

转载 作者:行者123 更新时间:2023-11-29 06:14:49 37 4
gpt4 key购买 nike

我需要能够计算两个数据/时间值之间的差异,这两个数据/时间值代表(可能)两个不同地理位置的瞬间。

我拥有的每个输入值都是以下元组:

  • 没有时区偏移的日期/时间值,例如,6:54 AM, 12/3/2005
  • 描述特定时间位置的纬度/经度值(例如,-33.8704、151.1938)。

根据两个输入值的任意组合,我需要计算时间差(可能是分钟、天、年等)。首先,我需要:

  • 标准化每个输入值到它们相关的 GMT(或祖鲁)时间。我想这可以通过将纬度/经度值转换为时区来完成。获得相关时区后,我需要根据指定日期考虑夏令时差异以确定准确时间。
  • 一旦时间值被归一化,计算差异就很简单了。

谁能给我建议:

  1. 将纬度/经度对转换为时区,以及
  2. 确定给定时区和日期的夏令时偏移量。

我想我需要(1) 的一些函数 和(2) 的值数据库,但我不知道从哪里可以获得这些,或者是否可以它们是免费提供的。

其他约束:

  • 我想要用 Java 或 .Net 编写的软件(因为我的软件应用程序可以使用用其中任何一种编写的插件),并且
  • 我真的希望所有处理都是本地。我知道有几个网络服务可以计算经/纬度对的时区(如在 this Stackoverflow question 上讨论的那样,例如 Geonames.org 或 DRTEngine),但考虑到我拥有的数据量,我不想为我拥有的每个数据点依赖或访问第三方网络服务,所以我更喜欢“免费”软件并在本地访问所有正确的信息。

更新:感谢迄今为止提供答案的所有人员。我目前正在尝试使用 GeoNames data 来解决这个问题。并执行最近邻计算以确定经纬度的时区,并将专注于使用 Joda Time 和相关的最新 tz database用于计算特定日期的夏令时偏移量。

最佳答案

获得时区后,您无需自行执行 DST 检查 - Java TimeZone , 乔达时间 DateTimeZone和.NET TimeZoneInfo类(class)会为您解决这个问题。

(如果您使用的是 Java,我强烈建议使用 Joda Time 而不是内置的日历类。)

恐怕我不知道有任何图书馆可以将纬度/经度转换为时区。我确定一定有可用的东西,但我不知道。请注意,任何此类库都可能为您提供区域信息样式的名称(例如“欧洲/伦敦”),这不是 .NET TimeZoneInfo 的名称。不幸的是,类使用。如果Noda Time准备好了,我建议使用它而不是 .NET,但我们还没有完成它:(

关于java - 计算差异顺便说一句。不同地点/时区的时间(考虑夏令时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5482823/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com