8 ответов:
вы пробовали использовать
TimeZone.getDefault():большинство приложений будет использовать часовой пояс.getDefault() который возвращает часовой пояс на основе о часовом поясе, в котором выполняется программа.
Ref: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());выход:
часовой пояс GMT + 09: 30 Timezon id:: Австралия / Дарвин
попробуйте этот код-
Calendar cal = Calendar.getInstance(); TimeZone tz = cal.getTimeZone();он возвращает выбранный пользователем часовой пояс.
Мне нужно смещение это не только включало время экономии дневного света, но и как numerial. Вот код, который я использовал в случае, если кто-то ищет пример.
Я получаю ответ от "3.5" (3:30') это то , что я ожидал бы в Тегеране, Иран зимой и "4.5" (4:30') на лето .
мне также нужна была строка, чтобы я мог отправить ее на сервер, поэтому вам может не понадобиться последняя линия.
для получения currect часовой пояс:
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 Вы должны использовать время.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
часовой пояс часовой пояс = часовой пояс.getDefault(); часовой пояс.getID();
Он будет печатать как
Asia/Kolkata
Comments