Как сделать, чтобы не менялось время в Date при смене часового пояса?

Ситуация: в моем приложении два фрагмента. В первом фрагменте пользователь выбирает дату, которая записывается в переменную типа Date. Далее, пользователь меняет в настройках телефона часовой пояс, нажимает на кнопку. Записанная дата передается во второй фрагмент и выводится там в TextView.

Проблема: Даты на первом и втором фрагментах не совпадают. То есть если стоял у пользователя часовой пояс -11 при выборе даты и +13 при просмотре второго фрагмента, а на первом фрагменте он выбрал 1 июня, то на втором фрагменте он увидит 2 июня.

Как сделать так, чтобы дата не менялась? Из-за чего так происходит?
  • Вопрос задан
  • 705 просмотров
Решения вопроса 1
@MiiNiPaa
Из-за чего так происходит?
Date хранит момент во времени. Проблема в том , что в один и тот же момент в разных часовых поясах на часах разное время а на календаре разная дата. Между -11 и +13 ровно 24 часа, поэтому любое время будет иметь разную дату между этими поясами.

Как сделать так, чтобы дата не менялась?
Используйте Calendar (GregorianCalendar) или SimpleDateFormat: что нибудь, что сохраняет информацию от таймзоне.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы