如何从android手机获取TimeZone?

点击button时,我想从Android手机中获取时区。

你有没有尝试过使用TimeZone.getDefault()

大多数应用程序将使用TimeZone.getDefault() ,它根据程序运行的时区返回TimeZone。

参考: 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()); 

输出:

TimeZone GMT + 09:30 Timezon id ::澳大利亚/达尔文

编辑:纠正的情况

TimeZone.getDefault()

试试这个代码 –

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

它将返回用户select的时区。

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

我得到的答案是“3.5”(3:30) ,这是我期望在德黑兰,伊朗在冬季和“4.5”(4:30)在夏季。

我也需要它作为一个string,所以我可以发布到服务器,所以你可能不需要最后一行。

获取正确的时区:

 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); 

简单date格式的简单解决scheme: 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