博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android实践 -- 设置系统日期时间和时区
阅读量:5810 次
发布时间:2019-06-18

本文共 2378 字,大约阅读时间需要 7 分钟。

设置系统日期时间和时区

设置系统的日期时间和时区,需要 系统权限和系统签名android:sharedUserId="android.uid.system"

需要在manifest文件中添加相应的权限

  • 判断系统使用的是24小时制还是12小时制

    boolean is24Hour =  DateFormat.is24HourFormat(mContext);
  • 设置系统的小时制

24小时制

android.provider.Settings.System.putString(mContext.getContentResolver(), android.provider.Settings.System.TIME_12_24, "24");

12小时制

android.provider.Settings.System.putString(mContext.getContentResolver(), android.provider.Settings.System.TIME_12_24, "12");
  • 判断系统的时区是否是自动获取的

    public boolean isTimeZoneAuto(){  try {      return  android.provider.Settings.Global.getInt(mContext.getContentResolver(), android.provider.Settings.Global.AUTO_TIME_ZONE) > 0; } catch (SettingNotFoundException e) { e.printStackTrace(); return false; } }
  • 设置系统的时区是否自动获取

    public void setAutoTimeZone(int checked){ android.provider.Settings.Global.putInt(mContext.getContentResolver(), android.provider.Settings.Global.AUTO_TIME_ZONE, checked); }
  • 判断系统的时间是否自动获取的

    public boolean isDateTimeAuto(){  try {      return android.provider.Settings.Global.getInt(mContext.getContentResolver(), android.provider.Settings.Global.AUTO_TIME) > 0; } catch (SettingNotFoundException e) { e.printStackTrace(); return false; } }
  • 设置系统的时间是否需要自动获取

    public void setAutoDateTime(int checked){ android.provider.Settings.Global.putInt(mContext.getContentResolver(), android.provider.Settings.Global.AUTO_TIME, checked); }
  • 设置系统日期

    参考系统Settings中的源码

    public void setSysDate(int year,int month,int day){ Calendar c = Calendar.getInstance(); c.set(Calendar.YEAR, year); c.set(Calendar.MONTH, month); c.set(Calendar.DAY_OF_MONTH, day); long when = c.getTimeInMillis(); if(when / 1000 < Integer.MAX_VALUE){ ((AlarmManager)mContext.getSystemService(Context.ALARM_SERVICE)).setTime(when); } }
  • 设置系统时间

    参考系统Settings中的源码

    public void setSysTime(int hour,int minute){ Calendar c = Calendar.getInstance(); c.set(Calendar.HOUR_OF_DAY, hour); c.set(Calendar.MINUTE, minute); c.set(Calendar.SECOND, 0); c.set(Calendar.MILLISECOND, 0); long when = c.getTimeInMillis(); if(when / 1000 < Integer.MAX_VALUE){ ((AlarmManager)mContext.getSystemService(Context.ALARM_SERVICE)).setTime(when); } }
  • 设置系统时区

    public void setTimeZone(String timeZone){ final Calendar now = Calendar.getInstance(); TimeZone tz = TimeZone.getTimeZone(timeZone); now.setTimeZone(tz); }
  • 获取系统当前的时区

    public String getDefaultTimeZone(){ return TimeZone.getDefault().getDisplayName(); }

转载地址:http://iecbx.baihongyu.com/

你可能感兴趣的文章
微服务架构会和分布式单体架构高度重合吗
查看>>
如何测试ASP.NET Core Web API
查看>>
《The Age of Surge》作者访谈
查看>>
测试人员的GitHub
查看>>
Spring Web Services 3.0.4.RELEASE和2.4.3.RELEASE发布
查看>>
有关GitHub仓库分支的几个问题
查看>>
无服务器计算的黑暗面:程序移植没那么容易
查看>>
云原生的浪潮下,为什么运维人员适合学习Go语言?
查看>>
Webpack入门教程三十
查看>>
EAServer 6.1 .NET Client Support
查看>>
锐捷交换机密码恢复(1)
查看>>
Kali linux virtualbox rc=1908 错误解决办法
查看>>
linux软件包管理之三(源代码安装)
查看>>
数据库三范式是什么?
查看>>
[转载]设置Ubuntu自动连接无线,无须再输入密钥环和无线密码
查看>>
九叔Xen App测试报告
查看>>
Apache配置
查看>>
Ext gridPanel 单元格数据的渲染
查看>>
Android SDK 的下载代理
查看>>
Method Swizzling对Method的要求
查看>>