У меня есть 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();