Конвертировать время UTC в длинное значение в время по Гринвичу в Android - PullRequest
0 голосов
/ 16 апреля 2019

У меня время UTC в длинном значении = 1555415100000L.Теперь я хочу преобразовать в местное время в другом часовом поясе.

пример:

1555415100000L = 2019/04/16 18:45 (GMT + 7)

1555415100000L =2019/04/16 14:45 (GMT + 3) ...

У вас есть предложения по решению этой проблемы?

1 Ответ

0 голосов
/ 16 апреля 2019

Я написал этот метод. Этот метод возвращает определенное время по Гринвичу в виде форматированной строки. Вы должны дать этому методу время в миллисекундах и время по Гринвичу.

private String getSpecificGmtDate(long timeMillis, int gmt) {
    long time = timeMillis + (gmt * 1000 * 60 * 60);
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm");
    sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
    return (sdf.format(new Date(time)) + " (GMT " + gmt + ")");
}

выход:

System.out.println(getSpecificGmtDate(1555415100000L, 0));
16/04/2019 11:45 (GMT 0)
System.out.println(getSpecificGmtDate(1555415100000L, 3));
16/04/2019 14:45 (GMT 3)
System.out.println(getSpecificGmtDate(1555415100000L, -3));
16/04/2019 08:45 (GMT -3)
...