Android как установить часовой пояс через приложение - PullRequest
6 голосов
/ 18 марта 2012

Android предоставляет разрешение с именем «SET_TIME_ZONE» с уровнем разрешения ОС «опасный». Кто-нибудь знает, что при наличии приложения с таким разрешением, как приложение может установить часовой пояс?

Спасибо.

Ответы [ 3 ]

16 голосов
/ 18 марта 2012

Если ваша цель - изменить часовой пояс системы по умолчанию, используйте setTimeZone () AlarmManager.

4 голосов
/ 25 апреля 2014

Вы можете установить TimeZone несколькими способами:

  1. Вы можете использовать TimeZone.setDefault () , который изменит TimeZone только для текущего процесса.Но, как отмечалось в документации, это не гарантируется для всего жизненного цикла приложения.

  2. Вы можете использовать setTimeZone () из AlarmManager изменить часовой пояс всего устройства.Но для этого вам нужно разрешение «SET_TIME_ZONE».

Если вы считаете, что 1. опасно, и у вас нет разрешения на 2. Лучший способ - получить всеВведите дату Календарь и установите часовой пояс для экземпляра Calendar с помощью setTimeZone () .

1 голос
/ 18 марта 2012

Для установки часового пояса программно вам необходимо использовать класс даты. См. Его справочные документы здесь .

Вам необходимо использовать setTimeZone() метод SimpleDateFormat Class.

Ниже приведен пример кода для настройки часового пояса в соответствии с Америкой

// First Create Object of Calendar Class
Calendar calendar = Calendar.getInstance();        
// Now Set the Date using DateFormat Class
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss z"); 
// Finally Set the time zone using SimpleDateFormat Class's setTimeZone() Method
sdf.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles")); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...