如何从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