晚上好,
我查看了timezone库,以及Goedesty都没有找到。哪位大侠知道如何给定经纬度来判断对应时区?
理想代码如下
using Geodesty
p = LLA(51.345678, 121.9876543, 0)
tz = LLAtoTimeZone(p)
# code
晚上好,
我查看了timezone库,以及Goedesty都没有找到。哪位大侠知道如何给定经纬度来判断对应时区?
理想代码如下
using Geodesty
p = LLA(51.345678, 121.9876543, 0)
tz = LLAtoTimeZone(p)
# code
要 UTC+8 这样的时区,用经度就可以了
# caculateTimeZone.jl
"""
根据经度计算时区。
"""
function tz(lon::Real)::Int
d = div(lon, 15) |> Int
r = rem(lon, 15)
if r < 7.5
d
else
d + (lon>0 ? 1 : -1)
end
end
function TimeZone(lon::Real)
r = tz(lon)
tl = r>=0 ? '+'*string(r) : string(r)
"UTC" * tl
end
for i in range(-180, step=15, stop=180)
TimeZone(i) |> println
end
UTC-12
UTC-11
UTC-10
UTC-9
UTC-8
UTC-7
UTC-6
UTC-5
...
UTC+0
...
UTC+12
看了眼维基还能 +14,自己慢慢加判断吧
ref:
谢谢。后来在stackoverflow上找到了更为齐全的解释。对于15度一小时的原则解释,个人觉得还是有很多例外。例如大中华
我计划选中timezonefinder或pytzwhere两个pythong库试一试。