2011-06-20 162 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