2012-01-27 50 views
6

在我的Android應用程序中,我讀取GPS數據和GPS時間。由於某些原因GPS返回明天的日期。任何人都知道爲什麼?gps提前一天退貨?

我得到的數據是這樣的:(它總是很好)。在4.0.3中的錯誤?

position.GPSTime = new Date(loc.getTime()); 

enter image description here

編輯

我把所有的時間在UTC。這個應用程序正在生產1年 - 從1小時前顯示的結果,你可以看到他們是UTC時間。在設備報告的左側時間和從位置服務的右側時間。我不會混淆任何東西,這些日期通常相隔1-2秒。

EDIT 2

看到我的調試器從拍我的手機!耗時2分鐘前(〜10:10 AM CST)

enter image description here

+0

@BicycleDude看我其他編輯從調試器的截圖。它是這樣的1年 - 工作正確... – katit 2012-01-27 16:14:23

+0

(編輯OOPS)好的,position.GPSTime是錯誤的。現在我們需要確定它是新的Date(毫秒)還是loc.getTime()是錯誤的來源。我開始同意你的看法,這很可能是一款帶有4.0.3問題的Nexus S。即查看是否(新日期(毫秒)).getTime ==毫秒 - 這將刪除一個錯誤的來源。然後我們來仔細檢查loc.getTime()。順便說一下,這是1月28日3:32上午在澳大利亞;) – 2012-01-27 16:29:54

+0

那麼,我會說如果它是'新日期(毫秒)' - 這是一個主要問題。 'location.GetTime()'在野外使用得少得多。 – katit 2012-01-27 16:34:16

回答

3

GPS時間以Coordinated Universal Time被表達。參考時間是倫敦的時間。你對當地時間感到困惑,這是在UTC時間後面1天的時區。

經過很多故障排除和研究之後,我遇到了Google Code的這篇文章Issue 23937: GPS Provider : android.location.Location.getTime() returns wrong UTC timestamp on 4.0.3/Nexus S,這似乎描述了相同的症狀。

+0

你能指出這個特定的時區嗎?我相信沒有這樣的時區;) – Tadeck 2012-01-27 15:48:58