Как установить часовой пояс java.util. Дата?

Я проанализировал a java.util.Date от a String но это устанавливает зону местного времени как часовой пояс date объект.

Часовой пояс не указан в String от которого Date анализируется. Я хочу установить определенный часовой пояс date объект.

Как я могу сделать это?

205
задан Matt Johnson-Pint 30 June 2014 в 06:01
поделиться

3 ответа

Использовать DateFormat. Например,

SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
isoFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = isoFormat.parse("2010-05-23T09:01:02");
293
ответ дан 23 November 2019 в 04:51
поделиться

Имейте в виду, что объекты java.util.Date сами по себе не содержат никакой информации о часовом поясе - вы не можете установить часовой пояс для объекта Date . Единственное, что содержит объект Date , - это количество миллисекунд, прошедшее с «эпохи» - 1 января 1970 года, 00:00:00 UTC.

Как показывает ZZ Coder, вы устанавливаете часовой пояс в объекте DateFormat , чтобы указать ему, в каком часовом поясе вы хотите отображать дату и время.

168
ответ дан 23 November 2019 в 04:51
поделиться

java.util.Calendar - это обычный способ обработки часовых поясов с использованием только классов JDK. Apache Commons имеет несколько дополнительных альтернатив / утилит, которые могут быть полезны. Править Заметка Спонга напомнила мне, что я слышал действительно хорошие вещи о Joda-Time (хотя сам не использовал).

6
ответ дан 23 November 2019 в 04:51
поделиться
Другие вопросы по тегам:

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