преобразование Java часового пояса сервера - PullRequest
0 голосов
/ 19 сентября 2011

Хорошо, так что я почти все перепробовал.Бьюсь об заклад, это что-то действительно простое, но я не могу понять это.

Сервер отправляет мне время, которое является эпохой.Однако, когда я помещаю это в объект даты, кажется, что он автоматически выбирает часовой пояс и добавляет +3 к времени сервера.Так что, если время gmt 00.00, оно говорит, что его 03.00.

Мне также нужно добавить собственный часовой пояс.Допустим, время эпохи снова равно 00.00, после добавления часового пояса должно появиться 10.00.

любая помощь будет высоко ценится.Спасибо

1 Ответ

0 голосов
/ 19 сентября 2011

«Похоже, что добавить» - я подозреваю, что вы используете Date.toString(), который действительно использует местный часовой пояс.Сам объект Date фактически находится в UTC.Вместо этого используйте DateFormat, чтобы выполнить преобразование в строку, и вы можете указать, какой часовой пояс использовать.Вам также может понадобиться использовать Calendar - это зависит от того, что вы пытаетесь сделать.

(В качестве альтернативы сначала используйте Joda Time , что является лучшим API.может быть немного громоздким для вашего проекта Android, хотя я не удивлюсь, если бы где-нибудь был проект "Joda Time lite" именно для такого рода вещей ...)хотя не совсем понятно, что тебе нужно ...

long millis = getMillisFromServer();
Date date = new Date(millis);
DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
format.setTimeZone(customTimeZone);
String formatted = format.format(date);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...