2014-10-16 4 views
0

Я получаю строку даты/времени из сети в формате yyyy-mm-dd HH:MM:SS и находится в UTC.Преобразование строки в точку часового пояса GMT. JAVA

Я должен создать Date объект и распечатать объект даты в формате GMT, но я не хочу, чтобы изменить, например, если я прочитал дату как 2014-10-22 09:00:00, то оно должно отображаться как 2014-10-22 09:00:00 GMT вместо 2014-10-22 13:30:00

Как это сделать? Пожалуйста, предложите мне.

(FYI, В настоящее время, UTC - время: 10:25, в настоящее время время в Индии составляет 15:55).

Я использую парсер Jaxb для анализа XML. Любые предложения приглашаются

+0

GMT не является форматом - это действительно часовой пояс. То, что вы описали до сих пор, - это почти конверсия идентичности: public public String convert (String text) {return text + "GMT"; } '... И во время публикации время UTC составляло примерно 16:34, * не * 10:25 ... –

+0

возможный дубликат [Дата форматирования в java] (http://stackoverflow.com/questions/4772425/format-date-in-java) – msrd0

ответ

0

Вы можете использовать SimpleDateFormat, чтобы проанализировать дату, а затем переформатировать ее в другой часовой пояс.

String toTimeZone = "GMT"; 
String fromTimeZone = "UTC"; 
String stingvalue = "2014-10-14 03:05:39"; 

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
dateFormat.setTimeZone(TimeZone.getTimeZone(fromTimeZone)); 
Date parsedDate = dateFormat.parse(stingvalue); 

dateFormat.setTimeZone(TimeZone.getTimeZone(toTimeZone)); 

String newDate = dateFormat.format(parsedDate); 

Объяснение

Java-Date класс рассчитывает время в миллисекундах с 1 января 1970 года 00: 00: 00.000 GMT. Таким образом, ваши Даты являются часовым поясом нейтральным. Чтобы получить дату в другом часовом поясе, просто отформатируйте ее по-другому

+0

Дело в том, что у нас есть пользовательский интерфейс, в который мы передаем переменную java.util.date. Поэтому мне нужно передать переменную Date, созданную в GMT timeZone. Я не могу передать строку в UI –

+0

В этом случае вам просто нужно создать «SimpleDateFormat» в соответствии с вашим необходимым форматом, установить часовой пояс и форматировать дату. Это должно делать свое дело. – PeterK

Смежные вопросы