Я хочу получить часовой пояс с Android-мобильного телефона, нажав кнопку.
Как получить TimeZone от мобильного телефона Android?
Ответ 1
Вы пытались использовать TimeZone.getDefault()
:
В большинстве приложений будет использоваться TimeZone.getDefault(), которая возвращает основанную на TimeZone в часовом поясе, в котором запущена программа.
Ссылка: http://developer.android.com/reference/java/util/TimeZone.html
Ответ 2
TimeZone tz = TimeZone.getDefault();
System.out.println("TimeZone "+tz.getDisplayName(false, TimeZone.SHORT)+" Timezon id :: " +tz.getID());
Вывод:
TimeZone GMT + 09: 30 Timezon id:: Австралия/Дарвин
Ответ 3
Изменить: исправлен случай
Ответ 4
Попробуйте этот код -
Calendar cal = Calendar.getInstance();
TimeZone tz = cal.getTimeZone();
Он вернет пользовательский часовой пояс.
Ответ 5
Мне понадобилось offset, которое не только включало дневное свечение, но и число. Вот код, который я использовал в случае, если кто-то ищет пример.
Я получаю ответ "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);
Ответ 6
TimeZone timeZone = TimeZone.getDefault();
timeZone.getID();
Он будет печататься как
Asia/Kolkata
Ответ 7
Простейшее решение с простым форматом даты: 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
Ответ 8
В соответствии с http://developer.android.com/reference/android/text/format/Time.html вы должны использовать Time.getCurrentTimezone() для извлечения текущего часового пояса устройства.
Ответ 9
Для устройств с API 26 и выше вы можете получить его следующим образом:
ZonedDateTime.now().getZone().toString();
Ответ 10
На моем устройстве TimeZone.getDefault()
всегда возвращается часовой пояс UTC.
Мне нужно сделать это, чтобы настроить пользовательский часовой пояс:
TimeZone.setDefault(null)
val tz = TimeZone.getDefault()
Он вернет выбранный вами часовой пояс.