2014-12-28 24 views
0

我正在試驗Android上的ZipEntry.getTime()。但是我看到在不同設備上不同的結果爲同一個zip文件&: 1419755996000, 1419752396000, 1419730796000, 1419770396000, 1419737996000, 1419745196000, 1419759596000, ...ZipEntry.getTime()不可預知的結果

從我的設備的差異時間如下: + 2H, + 1H, -5H, + 6H, -3H, -1H, ...

這些數字是通過分析&日誌記錄從全世界的真實設備獲得的。 因爲我直接使用getTime()的長時間結果,所以我並不期待時區的重要性。

這些差異如何通過解釋,我能做些什麼來獲得所有設備上的統一結果?

回答

3

在一個zip文件中,每個條目的日期和時間以年,月,日,小時,分和秒的形式存儲,編碼爲long值。沒有指定時區。當在getTime()方法的過程中將其轉換爲Java Date(代表即時時間)時,它會根據系統時區進行轉換。

+0

我可以以某種方式將結果標準化爲UTC時區,因此全部都是相同的嗎? –

+0

你可能會想用'TimeZone.getDefault()。getOffset(???)'這樣的東西來弄清楚需要調整多少,但是在接近夏令時開始的時候你會遇到麻煩,結束。 –