Android 系统(194)---Android实践 -- 设置系统日期时间和时区

Android实践 -- 设置系统日期时间和时区

转自:https://www.cnblogs.com/Free-Thinker/p/6627813.html

设置系统日期时间和时区

设置系统的日期时间和时区,需要 系统权限和系统签名,android:sharedUserId="android.uid.system"
需要在manifest文件中添加相应的权限

  1. <uses-permission android: name="android.permission.WRITE_SETTINGS"/>
  2. <uses-permission android: name="android.permission.WRITE_SECURE_SETTINGS"/>
  • 判断系统使用的是24小时制还是12小时制

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

24小时制

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

12小时制

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

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

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

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

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

    参考系统Settings中的源码

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

    参考系统Settings中的源码

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

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

    1. public String getDefaultTimeZone(){
    2. return TimeZone.getDefault().getDisplayName();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值