Подтвердить что ты не робот

Получение текущего часового пояса в приложении android

Как получить текущий часовой пояс в приложении для Android? Я попытался использовать этот

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

Но я не получаю от него часовой пояс. Как отобразить часовой пояс?

4b9b3361

Ответ 1

Используйте этот

Calendar cal = Calendar.getInstance();
TimeZone tz = cal.getTimeZone();
Log.d("Time zone","="+tz.getDisplayName());

или вы также можете использовать класс java.util.TimeZone

TimeZone.getDefault().getDisplayName()

Ответ 2

String timezoneID = TimeZone.getDefault().getID();
     System.out.println(timezoneID);

В моей консоли напечатано Asia/Calcutta

И любой формат даты я установил его как....

SimpleDateFormat sdf2 = new SimpleDateFormat("dd-MMM-yyyy");
sdf2.setTimeZone(TimeZone.getTimeZone(timezoneID));

Ответ 3

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

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

TimeZone tz = TimeZone.getDefault();
Date now = new Date();
int offsetFromUtc = tz.getOffset(now.getTime()) / 3600000;
String m2tTimeZoneIs = Integer.toString(offsetFromUtc);

Ответ 4

Чтобы отобразить текущее время, вы должны выполнить ниже фрагмент кода в потоке пользовательского интерфейса. Это сработало для меня:

Timer timer = new Timer();          
timer.schedule(new TimerTask() {          
    public void run() {      
        runOnUiThread(new Runnable(){      
            public void run() {      
                dateTxt.setText(new Date().toString());      
            }      
        });      
    }      
}, 0, 1000);