时差忽略时区差异

时间:2011-06-20 19:40:48

标签: java time

我有2个时间值1unit == 1sec(从时间戳得出),例如1308598131,客户认为时间是1308594548,服务器认为时间是 - 这些有3583的差异。

在现实世界中,服务器时区比客户端落后1小时。我正在寻找一些简单的代码(java pref作为在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();

1 个答案:

答案 0 :(得分:3)

客户端和服务器是否返回各自的本地时间?如果可能的话,你可以让他们返回他们的UTC时间然后你正在处理苹果对苹果,并且不需要担心时区,夏令时等等,只要差异如此?