2012-03-06 57 views

回答

9

在你AndroidManifest.xml

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

在源:

AlarmManager am = (AlarmManager) getContext().getSystemService(Context.ALARM_SERVICE); 
am.setTimeZone("America/Los_Angeles"); 
+0

我想为3个不同的时区本地更改时区。 1.东部标准时间(东部标准时间)。 2. CST(中部标准时间)。 3. AST(大西洋标准时间)。 从哪里可以选择相应时区的按键? – Nithinjith 2017-04-05 09:40:56

+0

调用'TimeZone.getAvailableIDs()'获取系统已知时区的列表。 – Synesso 2017-08-17 00:10:07

+0

此权限仅适用于系统应用程序。 – HHLV 2018-03-08 09:59:20

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

Source

+2

该来源是对不同问题的答案,在这种情况下还不够。 – MarchingHome 2012-10-17 07:32:55

3

阿布舍克的代码只是定义了在应用程序中使用的特定格式的日历实例,以便将无法工作。

以编程方式更改手机的时区是不可能的。 你可以将用户重定向到相应的设置,但是:

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

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

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

正是我在找的东西。谢谢 – 2018-01-13 03:52:42