Разница во времени, игнорируя разницу часовых поясов - PullRequest
0 голосов
/ 20 июня 2011

У меня есть 2 значения времени 1unit == 1sec (получено из меток времени), например, 1308598131, что клиент считает, что время пришло, и 1308594548, что сервер считает, что время - это разница в 3583.

В реальном мире часовой пояс сервера отстает от клиента на 1 час. Я ищу какой-то простой код (java pref, как работающий на Android, но я мог бы перевести другие языки, если это необходимо :)), чтобы вычислить «реальный» diff, который в этом случае равен -14, например, клиент отстает от сервера на 14 секунд.

Это должно работать, если серверы находятся в одном часовом поясе, или клиент на 1 час опережает сервер (было бы неплохо, если бы он справлялся с более чем 1 часом, но в настоящий момент я не предполагаю, чтобы кто-нибудь за пределами Великобритании играл в игра :)

С уважением Simon

Ответ заключается в том, чтобы заставить моего клиента преобразовать его местное время в 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 Ответ

3 голосов
/ 20 июня 2011

Клиент и сервер возвращают свое местное время?Если возможно, можете ли вы попросить их вернуть свое время по Гринвичу, и тогда вы будете торговать яблоками с яблоками, и вам не нужно беспокоиться о часовых поясах, переходе на летнее время и т. Д., Если речь идет о разнице?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...