2011-06-20 208 views
0

我有2個時間值1unit == 1秒(從時間戳派生)例如1308598131客戶端認爲時間是1308594548服務器認爲時間是 - 這些有3583的差異。時間差異忽略時區差異

在現實世界中,服務器時區比客戶端晚1小時。我正在尋找一些簡單的代碼(java pref as working on android,但是我可以翻譯其他語言,如果需要:))來計算「真實」差異,在這種情況下是-14,例如客戶端在服務器後面14秒。

如果服務器在同一個時區或客戶端比服務器提前1個小時,它需要工作(如果它應對超過1小時會很好,但目前我不設想英國以外的任何人玩遊戲遊戲:)

問候 西蒙

答案是讓我的客戶到其本地時間爲UTC(該服務器上)轉換 - 我的代碼做,這是弄成這個 -

  android.text.format.DateFormat df = new android.text.format.DateFormat(); 
     long scTM = System.currentTimeMillis(); 
     scTM = scTM - TimeZone.getDefault().getOffset(scTM); 
     String launchTime = DateFormat.format("yyyyMMddkkmmss", scTM).toString(); 
+0

你怎麼得到這些時間戳?在JavaScript? –

+0

是否有一個窗口是「合理的」,其差異僅限於?例如,與服務器在同一時區的客戶端可能會在服務器後面一個小時? – TofuBeer

回答

3

客戶端和服務器ret他們各自的當地時間?如果可能的話,你可以讓他們返回他們的UTC時間,然後你正在處理蘋果到蘋果,並且不需要擔心時區,夏時制等等,只要區別在哪裏?

+0

你只是說因爲你不能做數學:)當然,你的解決方案更簡單和優雅。 :) Ta – SimpleSi