Location.getTime 返回 UTC 有或没有闰秒?
Posted
技术标签:
【中文标题】Location.getTime 返回 UTC 有或没有闰秒?【英文标题】:Location.getTime returns UTC with or without leap seconds? 【发布时间】:2016-04-20 23:42:04 【问题描述】:android 的 Location 文档声明它提供 UTC。 UTC 是否有闰秒?
关于 Java 是否考虑闰秒有很多问题,大多数人倾向于说它没有,模棱两可before java 7 and clearly afterwards。
但是,getTime()
依赖于 gps 时间,它不考虑闰秒。位置是否添加它们?我对此表示怀疑,但我想确定一下,文档不清楚。
此外,SimpleDateFormat 设置为 timeZone("UTC")
时是否考虑它们? (我知道 UTC 不是时区,但显然 TimeZone.getTimeZone("UTC")
是有效的)
这里间接提出了一个类似的问题:Ticks between Unix epoch and GPS epoch。证明Date.getTime
没有考虑UTC 闰秒。问题是,Location.getTime
也忽略它们吗?我想是的,即使文档声明它报告 UTC,it can't(除非定期更新)并且很可能不会。
【问题讨论】:
【参考方案1】:我相信你会觉得这个话题很有趣
Android problem finding out how recent latest GPS fix is
但实际上这在文档中并没有真正详细...我对此也很好奇:p
【讨论】:
我不会将设备的时间用于任何事情。这是我想知道的固定时间转换,它是真正的 UTC 还是 UNIX 纪元(自 1970 年以来的毫秒数,没有闰秒)。您链接的问题是关于设备时间的论文,这是一个复杂得多的问题。不过还是谢谢! 这个问题更中肯:***.com/questions/20521750/…。将其添加到问题中以进行澄清。 这不是一个真正的答案。并且文档指出 getTime() 应Return the UTC time of this fix, in milliseconds since January 1, 1970.
所以似乎没有人真正遵守规范,这是不幸的。以上是关于Location.getTime 返回 UTC 有或没有闰秒?的主要内容,如果未能解决你的问题,请参考以下文章
获取自 UTC 日期的 EPOCH 以来返回错误结果的毫秒? [复制]