Получение правильного времени из метки времени

Я получаю следующую длинную 1389967092 как отметку времени. Это должно представлять...

GMT: пятница, 17 января 2014 13:58:12 GMT

ИЛИ ЖЕ

Мой часовой пояс: 17.01.2014 14:58:12 GMT+1

Однако я нахожусь в GMT+1, но время, которое я хочу показать, является представлением GMT. Я пытаюсь следующее:

    Calendar cal = Calendar.getInstance();
    cal.setTimeInMillis(timeStamp);
    Date date = cal.getTime();
    Log.d(Point.class.getSimpleName(), date.getHours() + ":" + date.getMinutes());

Но это печатает 12:58

Что я делаю неправильно?

РЕДАКТИРОВАТЬ - ОТВЕТ НА ОТВЕТ

Этот код я использую это печатает 1969-12-13 10:54:48

    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(1389967092*1000);
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    sdf.setTimeZone(TimeZone.getTimeZone("GMT"));

    Log.d(Point.class.getSimpleName(), sdf.format(calendar.getTime));

1 ответ

По умолчанию Calendar.getInstance возвращает время в соответствии с часовым поясом вашего устройства. Однако вы можете запросить другой часовой пояс, например:

Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));

Чтобы распечатать ваше текущее время в соответствии с различными часовыми поясами, вы можете использовать SimpleDateFormat, Например:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Log.d(TAG, sdf.format(new Date()));
Другие вопросы по тегам