Конвертировать время UTC в телефон по местному времени - PullRequest
0 голосов
/ 17 августа 2010

Я пытаюсь получить местное время с времени UTC сервера.Я получаю время UTC с сервера - и я хочу, чтобы оно было правильным для каждого отдельного телефона Android, будь то в Калифорнии или Китае.

Это код, который я использую сейчас - однако он не работает.

Время, которое я получаю с сервера:

"2010-08-17 19:41:13.0"

И код, который я использую дляполучить разницу (в секундах):

public static long getSecondsDifference(Timestamp timeStamp) {
    final Calendar calendar = Calendar.getInstance(Locale.getDefault());

    int refrenceOffset = TimeZone.getDefault().getOffset(timeStamp.getTime());

    final long referenceSeconds = (timeStamp.getTime() + refrenceOffset) / 1000;
    final long currentTimeSeconds = (calendar.getTimeInMillis()) / 1000;

    final long differenceMinutes = (currentTimeSeconds - referenceSeconds) / 60;

    return differenceMinutes;
}

Метка времени из пакета java.sql.timestamp.

Сейчас время, в которое я нахожусь, - 11:50 -- и метод возвращает, что данное серверное время составляет -53 минуты назад (поэтому, очевидно, что-то делает не так :))

1 Ответ

1 голос
/ 22 августа 2010

Это было связано с переходом на летнее время.Так как его PDT (Тихоокеанское летнее время), где я живу - я должен компенсировать.

public static long getSecondsDifference(Timestamp timeStamp) {
    final Calendar calendar = Calendar.getInstance(Locale.getDefault());

    int offset = TimeZone.getDefault().getOffset(timeStamp.getTime());

    if (TimeZone.getDefault().inDaylightTime(Calendar.getInstance().getTime())) {
        offset = offset - TimeZone.getDefault().getDSTSavings();
    }
    final long referenceSeconds = (timeStamp.getTime() + offset) / 1000;

    final long currentTimeSeconds = (calendar.getTimeInMillis()) / 1000;

    final long differenceSeconds = (currentTimeSeconds - referenceSeconds);

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