Как получить TimeZone от мобильного телефона Android?

Я хочу получить часовой пояс с Android-мобильного телефона, нажав кнопку.

Вы пытались использовать TimeZone.getDefault() :

Большинство приложений будут использовать TimeZone.getDefault (), который возвращает TimeZone на основе часового пояса, в котором работает программа.

Ссылка: http://developer.android.com/reference/java/util/TimeZone.html

 TimeZone tz = TimeZone.getDefault(); System.out.println("TimeZone "+tz.getDisplayName(false, TimeZone.SHORT)+" Timezon id :: " +tz.getID()); 

Вывод:

TimeZone GMT + 09: 30 Timezon id :: Австралия / Дарвин

Изменить: исправлено дело

TimeZone.getDefault()

Попробуйте этот код-

 Calendar cal = Calendar.getInstance(); TimeZone tz = cal.getTimeZone(); 

Он вернет пользовательский часовой пояс.

Мне понадобилось смещение, которое не только включало дневное свечение, но и как числовое . Вот код, который я использовал, если кто-то ищет пример.

Я получаю ответ «3,5» (3:30), который я ожидаю в Тегеране, в Иране зимой и «4,5» (4:30) на лето.

Я также нуждался в нем в качестве строки, поэтому я мог бы отправить ее на сервер, чтобы вам не понадобилась последняя строка.

для получения правильного часового пояса:

 TimeZone tz = TimeZone.getDefault(); Date now = new Date(); //Import part : x.0 for double number double offsetFromUtc = tz.getOffset(now.getTime()) / 3600000.0; String m2tTimeZoneIs = Double.parseDouble(offsetFromUtc); 

Согласно http://developer.android.com/reference/android/text/format/Time.html, вы должны использовать Time.getCurrentTimezone () для извлечения текущего часового пояса устройства.

Простейшее решение с простым форматом даты: SimpleDateFormat («ZZZZZ»):

  Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"), Locale.getDefault()); Date currentLocalTime = calendar.getTime(); DateFormat date = new SimpleDateFormat("ZZZZZ",Locale.getDefault()); String localTime = date.format(currentLocalTime); System.out.println(localTime+ " TimeZone " ); 

==> Выход: +05: 30

TimeZone timeZone = TimeZone.getDefault (); timeZone.getId ();

Он будет печатать как

 Asia/Kolkata 
  • Как отсортировать ArrayList в Java в порядке убывания?
  • Как закрыть другое приложение в Android?
  • Android - SPAN_EXCLUSIVE_EXCLUSIVE охватывает не может иметь нулевую длину
  • Как поместить банку в classpath в Eclipse?
  • R.raw.any не может быть разрешено
  • Android - Кэш Bitmap занимает много памяти
  • Проверка программного режима энергосбережения
  • Ошибка: java: javacTask: исходный выпуск 8 требует целевого релиза 1.8
  • Включить частичную компиляцию в IntelliJ IDEA
  • BitmapFactory.decodeStream возвращает значение null при настройке параметров
  • Android Thread для таймера
  • Давайте будем гением компьютера.