android 通过TimeZone 和 AlarmManager设置devices让默认时区:
1.获取系统默认时区:
TimeZone timeZone = TimeZone.getDefault(); String id = timeZone.getID(); //获取时区id String name = timeZone.getDisplayName(); //获取名字 int time = timeZone.getRawOffset(); //获取时差,返回值毫秒
2.获取系统支持所有时区id:
String[] _id = TimeZone.getAvailableIDs(); String id = null; for (int i = 0; i < _id.length; i++) { if (TimeZone.getTimeZone(_id[i]).getRawOffset() / 3600 / 1000 == -5) { //获取时差为-5的所有id //do something } }
3.设置默认时区:
AlarmManager alarm = (AlarmManager) getSystemService(ALARM_SERVICE); alarm.setTimeZone(id);//默认时区的id //alarm.setTimeZone("America/Atikokan");
4.设置默认时区需permission:
<uses-permission android:name="android.permission.SET_TIME_ZONE"/>