【发布时间】:2012-01-27 15:37:48
【问题描述】:
在我的 android 应用程序中,我读取 GPS 数据和 GPS 时间。出于某种原因,GPS 返回明天的日期。有人知道为什么吗?
我得到这样的数据:(总是很好)。 4.0.3 中的错误?!
position.GPSTime = new Date(loc.getTime());
编辑
我将所有时间都保持在 UTC。此应用程序已投入生产 1 年 - 我从 1 小时前开始显示结果,您可以看到它们是 UTC 时间。在设备报告的左侧时间和来自位置服务的右侧时间。我没有混淆任何东西,这些日期通常相隔 1-2 秒。
编辑 2
从我的手机调试器查看截图!! 2 分钟前拍摄(中部标准时间上午 10:10)
【问题讨论】:
-
@BicycleDude 查看我的其他编辑以及来自调试器的屏幕截图。 1 年就是这样 - 工作正常...
-
(EDIT OOPS) 好的,position.GPSTime 是错误的。现在我们需要确定它是 new Date(milliseconds) 还是 loc.getTime() 是错误的来源。我开始同意你的观点,这很可能是 Nexus S 的 4.0.3 问题。即查看 if (new Date(milliseconds)).getTime == milliseconds - 这将消除一个错误来源。然后我们要仔细检查 loc.getTime()。顺便说一句,澳大利亚是 1 月 28 日凌晨 3:32;)
-
好吧,我会说如果它是
new Date(milliseconds)- 那么这是一个主要问题。location.GetTime()在野外很少使用.. -
在找到 Code Google 中提到的错误后,我删除了过时的 cmets 并在下面更正了我的答案。
-
看起来它是芯片组固件影响的设备不仅仅是 4.0.3 :( 这很糟糕。我之前确实依赖过 DeviceTime 但这也是一个坏主意,因为我的用户也有平板电脑和那些不要与手机提供商的时间同步,所以时间可能会相差很多。我什至打算使用 GPS 时间来“验证”设备时间。真的......