【问题标题】:How do I find the timezone offset in hours from the UTC with latitude and longitude [duplicate]如何找到具有纬度和经度的 UTC 小时的时区偏移量 [重复]
【发布时间】:2013-12-07 00:43:36
【问题描述】:

我在我的代码中使用weatherlib 库来查找日出和日落时间,但是我找不到用户当前的时区以获取纬度和经度离线。以下是有关该主题的一些额外信息:

参考calc_sunrise

calc_sunrise(日期、纬度、经度、时区) 计算给定日期和地点的日出时间。来自 http://www.esrl.noaa.gov/gmd/grad/solcalc/ 的 JavaScript 代码的例程。 参数 - date:一个 os.date 表,表示计算日出时间的日期 - 纬度:位置的纬度 - 经度:位置的经度 - 时区:时区作为给定位置的 UTC 小时偏移量 返回值: - os.date 表,保存日出发生的日期和时间

它们还有一个calc_timezone_offset 函数,但您需要当前时区的字符串。这是它的参考:

calc_timezone_offset(时区) 计算给定时区与 UTC 的时区偏移量(以秒为单位)。使用外部命令 date(1)。如果本地日期命令支持夏令时,则考虑夏令时。仅在 Ubuntu Linux 10.04 和 Solaris 10 操作系统上测试。可能不是很便携。 参数 - 时区:时区名称,例如欧洲/赫尔辛基、亚洲/曼谷、美国/太平洋 用法 - weatherlib.calc_timezone_offset('欧洲/赫尔辛基') -- 7200 - weatherlib.calc_timezone_offset('亚洲/曼谷') -- 28800 - weatherlib.calc_timezone_offset('US/Pacific') -- -28800 返回值: - 从 UTC 开始的时区偏移量(以秒为单位)。 UTC 之前的时区为正,UTC 之后的时区为负。

谢谢!
附言我确实寻找了重复的问题,但没有人给我离线使用的答案。

编辑:指定我需要它离线。

【问题讨论】:

  • 关键点可能是找到一个能给出每个时区确切边界的来源。然后你也许可以做一些聪明的事情,比如按纬度区域排序,而不是对给定的经度/纬度是否在任意多边形内进行完全通用的测试。
  • @JimLewis - 谢谢。你知道有什么地方可以找到时区的边界位置吗?几乎所有我谷歌链接到这个问题的东西。
  • @JohnZwinck - 啊,我忘了我正在寻找这个离线。我将其添加到问题中。
  • @MattJohnson - 同上(我无权在一条评论中输入多个名字)
  • @Zoyt - 我发布的链接中的一些选项可以离线使用。

标签: lua timezone latitude-longitude utc timezone-offset


【解决方案1】:

我错过了@MattJohnson 帖子中的离线部分。我从whereonearth-timezone 获得了我的数据。谢谢!

【讨论】:

  • 您还应该考虑夏令时的使用,并意识到时区和夏令时规则都会随着时间而变化。 (这是 Java 库每年更新数次的原因之一。)
猜你喜欢
  • 2021-12-01
  • 2021-07-23
  • 2016-12-04
  • 2012-07-15
  • 2015-08-12
  • 1970-01-01
  • 1970-01-01
  • 2015-03-05
  • 1970-01-01
相关资源
最近更新 更多