获取Android应用程序中的当前时区

我如何在我的Android应用程序中获取当前时区? 我试图用这个

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

但是我没有从中获得时区。 我怎样才能显示时区?

用这个

 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

和任何date格式我把它设置为喜欢….

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

我需要的偏移量不仅包括日光节约时间,而且还是一个数字。 这里是我使用的代码,以防有人在寻找一个例子。

我得到了“11”的答复,这是我在夏天在澳大利亚新南威尔士期待的。 我也需要它作为一个string,所以我可以发布到服务器,所以你可能不需要最后一行。

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

要显示当前时间,您应该在UI线程上运行以下代码片段。 这对我工作:

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