Получить дату с устройства и преобразовать ее в GMT + 4 - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь найти часовой пояс телефона Android.Потому что я хочу получить объект даты, но я хочу в формате GMT ​​+ 4.Любой другой ответ, который я видел, конвертирует время, полученное от запроса API (чей часовой пояс известен).Как мне это сделать?

Другим подходом может быть преобразование времени GMT + 4, которое приходит ко мне с сервера, в местное время моего устройства.

1 Ответ

0 голосов
/ 13 сентября 2018

Лучше использовать реальный часовой пояс, а не просто смещение +04. Например:

    OffsetDateTime currentDateTimeInGeorgia = OffsetDateTime.now(ZoneId.of("Asia/Tbilisi"));
    System.out.println(currentDateTimeInGeorgia);

Этот фрагмент просто выводит:

2018-09-13T19: 18: 35,642592 + 04: 00

Пожалуйста, укажите свой часовой пояс. Если вы настаиваете на GMT + 4, используйте ZoneOffset.ofHours(4).

Старый класс Date не может содержать смещение или часовой пояс, но современный OffsetDateTime делает, как следует из названия. Класс Date также плохо спроектирован, поэтому рассмотрите возможность использования java.time, современного Java-API даты и времени.

Как видите, вышеприведенное не использует часовой пояс устройства. Если вам все равно это нужно:

    ZoneId deviceTimeZone = ZoneId.systemDefault();
    System.out.println(deviceTimeZone);

Пример вывода:

Азия / Дубай

Вопрос: Могу ли я использовать java.time на Android?

Да, java.time прекрасно работает на старых и новых устройствах Android. Для этого требуется как минимум Java 6 .

  • В Java 8 и более поздних версиях и на более новых устройствах Android (от 26 уровня API, как мне сказали) современный API поставляется встроенным.
  • В Java 6 и 7 получите ThreeTen Backport, бэкпорт новых классов (ThreeTen для JSR 310; см. Ссылки внизу).
  • На более старых (Android) версиях Android используется ThreeTen Backport. Это называется ThreeTenABP. И убедитесь, что вы импортируете классы даты и времени из org.threeten.bp с подпакетами.

Ссылки

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