Нахождение точной даты и времени в Android Studio - PullRequest
0 голосов
/ 29 мая 2018

Я создаю приложение для Android, и мне нужно получить ТОЧНУЮ дату и время, используя Android Studio.Есть много вопросов, которые могут решить эту проблему, но я понял, что все они дают время телефона, которое может редактировать пользователь.Мне нужно точное мировое стандартное время.

В настоящее время я использую следующий код:

DateFormat dfgmt = new java.text.SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
            dfgmt.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
            String nowTime = dfgmt.format(new Date());

Но это дает мне время, которое иногда настраивается пользователем,У кого-нибудь есть способ узнать точное время?

Ответы [ 4 ]

0 голосов
/ 29 мая 2018

Используйте стороннюю клиентскую библиотеку NTP для получения текущего времени с NTP-сервера.

Например В Apache Commons Net есть класс для этого.

0 голосов
/ 29 мая 2018

Вы можете запросить время на удаленном сервере.

Это позволит вам не устанавливать время вручную и не влиять на часовой пояс.

0 голосов
/ 29 мая 2018

Существует несколько различных подходов, которые вы могли бы использовать, в зависимости от того, есть ли у вас доступ к Интернету и / или GPS, и хотите ли вы, чтобы эта функция работала в автономном режиме.

  1. Как предлагали другиеВы можете использовать онлайн-сервис, чтобы получить официальное время.Например, TimezoneDB предоставляет такой API REST.
  2. Если вам нужно получить доступ к времени в автономном режиме, считайте время у провайдера GPS , который возвращает время вФормат UTCПроверьте Location.getTime () .
  3. Используйте комбинацию онлайн-сервиса, чтобы получить время один раз, и объедините его с SystemClock.elapsedRealtime () , чтобы получить фактическоев реальном времени после этого, даже если устройство находится в автономном режиме.
0 голосов
/ 29 мая 2018

Вы можете использовать внешний сервис для этого.Вы можете настроить простой REST API или использовать чужой (см. Этот пост, в котором приведен пример одного Free Rest API, чтобы получить текущее время в виде строки (часовой пояс не имеет значения) ) для выполнения HTTP-запросов и получения временине имеет значения, что установлено на телефоне пользователя.

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