Android如何通过应用程序设置时区
Android提供了一个名为“设置时区”的权限,操作系统权限级别为“危险”。是否有人知道,如果应用程序具有此权限,该应用程序如何设置时区Android如何通过应用程序设置时区,android,timezone,Android,Timezone,Android提供了一个名为“设置时区”的权限,操作系统权限级别为“危险”。是否有人知道,如果应用程序具有此权限,该应用程序如何设置时区 谢谢。对于时区的编程设置,您需要使用Date类。 见其参考文件 您需要使用SimpleDataFormat类的setTimeZone()方法 以下是根据美国设置时区的示例代码 // First Create Object of Calendar Class Calendar calendar = Calendar.getInstance();
谢谢。对于时区的编程设置,您需要使用Date类。 见其参考文件 您需要使用
SimpleDataFormat
类的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"));
如果您的目标是更改系统的默认时区,请使用AlarmManager。您可以通过多种方式设置时区:
如果你认为1。太危险了,你没有2的许可。您最好的方法是通过获取日历实例中的每个日期并在其上设置时区。您认为,如果应用程序没有设置时区权限,代码是否可以工作?@Jake:它必须“工作”。它所做的只是为您的对象设置
时区。这就像说inta=43
,操作系统不关心什么。全局设置是您需要的权限,请参阅另一个答案。此答案显示如何在SimpleDataFormat实例而不是系统上设置时区。请参阅Dheeraj的答案。-1因为这个答案实际上不是问题的答案,也因为无法通过Date类设置时区。遗憾的是,第一个解决方案不能保证100%有效。您是否了解在哪些情况下,TimeZone.setDefault()
无效或被覆盖的更多信息?文档仅说明“此值可能随时被清除或覆盖”,但文档未详细说明何时会发生此情况以及原因。@StefanArn抱歉,我没有任何信息。但我怀疑,如果设备配置为通过网络或类似来源(即GPS)设置日期和时区,系统可能会对其进行修改。