То, как сделать date.getTime () возвращает время UTC?

У меня есть объект Даты, который представляет время UTC. Когда я использую метод getTime () для получения длинного значения этого объекта, возвращенное значение соответствует нашему местному времени (центральные США). Что корректный путь состоит в том, чтобы получить значение назад, которое соответствует исходному времени UTC?

Спасибо

19
задан InspiredJW 16 January 2012 в 02:09
поделиться

3 ответа

Класс DateFormat имеет метод для установки предпочитаемого часового пояса, и есть класс часового пояса, который имеет установку для времени UTC.

Так, например,

SimpleDateFormat sdf = new SimpleDateFormat();
sdf.setTimeZone(new SimpleTimeZone(SimpleTimeZone.UTC_TIME, "UTC"));
Date yourUtcDate = sdf.parse(yourOriginalDate);
22
ответ дан 30 November 2019 в 01:59
поделиться

java.util.Date не имеет понятия временной зоны. Она просто хранит время относительно эпохи, то есть 1 января 1970 года 00:00:00 UTC. Дата - это модель, отдельная от представления. Когда вы отображаете дату, к ней применяется понятие часового пояса. Функция toString() Date отображает человекочитаемую дату в часовом поясе по умолчанию. Вы можете либо использовать DateFormat для отображения даты в другом часовом поясе (например, UTC), либо изменить часовой пояс JVM по умолчанию.

23
ответ дан 30 November 2019 в 01:59
поделиться

getTime () возвращает «количество миллисекунд с 1 января 1970 года, 00:00:00 по Гринвичу», ни больше ни меньше ( очевидно, нужно правильно его создать). Вы можете отформатировать его как хотите, начиная, например, с конструктор GregorianCalendar (TimeZone) .

7
ответ дан 30 November 2019 в 01:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: