我不确定它是否真的与Android有关,但由于我将其用于Android应用程序,我也在标记Android。
如果给出lat-long,我正在尝试构建一些逻辑来计算日出时间。
我已经尝试过关注,但是我提供的所有位置(印度班加罗尔)的日出时间都略有不同,当我使用关键字Bangalore Sunrise
搜索谷歌时Google会给出一个卡片中的不同结果看起来更准确:
所有人都给出了不同的结果,而Google的表现仍然更加准确。
这里有人知道API或更好的计算方法吗?或谷歌正在使用的算法/网络服务?
非常感谢任何帮助。
答案 0 :(得分:2)
印度标准时间是UTC + 05:30,这可能就是为什么你会看到30分钟的差异。
算法可以用UTC计算日出时间,但是它无法将UTC转换为本地时间,这需要复杂的时区知识。该算法可能会做一些非常简单的事情,比如
localTime = utcTime + 1_hour * longitude / 15_degree
这是Banglore市的5小时。
您应该使用UTC时间,然后使用Java日期API将其转换为本地时间。
答案 1 :(得分:1)
快速搜索引导我到这个api
答案 2 :(得分:1)
我没有研究过你给出的所有链接,但很可能这些差异源于不同的假设和定义。特别是,以下因素往往因算法而异:
当然还有其他因素,随着纬度越来越远离赤道,问题变得越来越不明确。但这些因素本身就可以解释差异。