Отображение даты / времени UTC в дату / время в соответствии с текущим часовым поясом - PullRequest
7 голосов
/ 01 ноября 2010

Я получаю строку даты / времени из сети в формате "гггг / мм / дд'ТХЧ: ММ: СС'Z '", и она в UTC.

Теперь у меня естьчтобы определить текущий часовой пояс устройства, а затем преобразовать это время в мое местное время.

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

(FYI, В настоящее время UTC время10:25 утра в Индии текущее время 3:55 вечера)

1 Ответ

13 голосов
/ 01 ноября 2010

Попробуйте использовать TimeZone.getDefault() вместо TimeZone.getTimeZone("GMT")

Из документов :

... вы получаете TimeZone с использованием getDefault, который создаетЧасовой пояс основан на часовом поясе, в котором работает программа.

РЕДАКТИРОВАТЬ: Вы можете проанализировать дату, используя SimpleDateFormat (там также есть документация по строке формата).В вашем случае вы хотите сделать (не проверено):

 // note that I modified the format string slightly
 SimpleDateFormat fmt = new SimpleDateFormat("yyyy/MM/dd'T'HH:mm:ss'Z'");
 // set the timezone to the original date string's timezone
 fmt.setTimeZone(TimeZone.getTimeZone("GMT"));
 Date date = fmt.parse("1998/12/21T13:29:31Z", new ParsePosition(0));

 // then reset to the target date string's (local) timezone
 fmt.setTimeZone(TimeZone.getDefault());
 String localTime = fmt.format(date);

или использовать два отдельных экземпляра SimpleDateFormat, один для оригинала и один для целевого времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...