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

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

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

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

Solutions Collecting From Web of "Получение текущего часового пояса в приложении android"

Использовать это

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

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

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

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

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

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

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

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

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

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

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