Баг TimeZone Android Java
Запись от Nikto размещена 06.06.2016 в 15:45
Показов 2786
Комментарии 2
|
Разрабатывая одно приложение наткнулся на ошибку в переводе времени из одного часового пояса в другой. Требовалось написать функцию перевода из текущей тайм зоны в тайм зону Москвы. Получилась такая функция:
Проверяю у себя (моё локальное GMT+5) всё отлично работает, у другого же человека, у которого локальное GMT+6, время переводится неверно. Перевожу у себя на GMT+6 и выявляю ту же ошибку. Перевожу на GMT+7 и опять всё верно переводит. Т.е. при переводе на GMT+3: GMT+5 переводит на 2 часа, GMT+6 переводит опять на 2 часа (должен на 3), GMT+7 переводит на 4 часа как и должен. Чудеса! Ставлю у себя GMT+6. Вывожу то, что хранится в TimeZone.getDefault(). Вижу GMT+6. Принудительно ставлю GMT+6 вместо default:
Думаю, что это баг андроида. Тестил на своём 4.4. Решил прикрутить небольшой костыль, чтобы избавиться от проблемы. В итоге решение выглядит так:
| |||||||||||||||
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 2
Комментарии
-
Запись от HighPredator размещена 07.06.2016 в 12:27
-
Не знаю, но то, что если вручную прописать GMT+6, то всё работает, а если выбрать дефолтное, которое тоже GMT+6, то считает неверно и это как минимум неправильная работа java функций. Даже если дело в не проапдейтных пакетах, то юзеров с необновлёнными пакетами много и получается у них всех неправильно будет работать перевод в другую таймзону, а это уже пахнет багом.
Сообщение от HighPredator
Запись от Nikto размещена 07.06.2016 в 13:42


