Получение правильного времени из метки времени
Я получаю следующую длинную 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()));