Android如何通过应用程序设置时区



Android提供了一个名为"SET_TIME_ZONE"的权限,操作系统权限级别为"危险"。有人知道吗,如果应用程序具有此权限,该应用程序如何设置时区?

谢谢。

如果您的目标是更改系统的默认时区,请使用AlarmManager的setTimeZone()。

您可以通过多种方式设置时区:

  1. 您可以使用TimeZone.setDefault(),它将仅更改当前进程的时区。但正如文档中所指出的,这并不能持续整个应用程序生命周期。

  2. 您可以使用AlarmManager的setTimeZone()更改整个设备的时区。但您需要"SET_TIME_ZONE"权限。

如果你认为1。太危险了,你没有2的权限。最好的方法是从日历中获取每个日期,并通过setTimeZone()在日历实例上设置时区。

对于时区的程序设置,您需要使用日期类。参见此处的参考文件。

您需要使用SimpleDateFormat类的setTimeZone()方法。

以下是根据美国设置时区的示例代码

// First Create Object of Calendar Class
Calendar calendar = Calendar.getInstance();        
// Now Set the Date using DateFormat Class
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss z"); 
// Finally Set the time zone using SimpleDateFormat Class's setTimeZone() Method
sdf.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles")); 

相关内容

  • 没有找到相关文章

最新更新