以编程方式更改android中的时区

我想在android中以编程方式更改时区,将时区设置为“America / Los_Angeles”。 我怎样才能做到这一点。 这怎么可能通过使用id的。

Solutions Collecting From Web of "以编程方式更改android中的时区"

在你的AndroidManifest.xml

 <uses-permission android:name="android.permission.SET_TIME_ZONE"/> 

在你的来源:

 AlarmManager am = (AlarmManager) getContext().getSystemService(Context.ALARM_SERVICE); am.setTimeZone("America/Los_Angeles"); 
 Calendar calendar = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss z"); sdf.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles")); System.out.println(sdf.format(calendar.getTime())); 

资源

阿布舍克的代码只是定义了一个日历实例,具有特定的格式在应用程序中使用,所以这是行不通的。

以编程方式更改手机的时区是不可能的。 但是,您可以将用户redirect到适当的设置:

 startActivity(new Intent(android.provider.Settings.ACTION_DATE_SETTINGS)); 

如果这是在一个模拟器或者你有根的设备上,你可以运行

 adb shell "su -c 'setprop persist.sys.timezone America/Los_Angeles; stop; sleep 5; start'"