adb修改android系统时间 adb shell date必须要root权限

adb Command

adb root //需要root权限
adb shell setprop persist.sys.timezone GMT //校准时区
adb shell date MMDDhhmmYY.ss set //修改系统时间这里是GMT格林尼治时间,北京时间得转换一下 +8小时
adb shell hwclock -w //同步硬件时间

adb shell date 0201030422.08 set //比如22年2月1日 3时4分8秒

在 MFC 中,北京时间转换GMT格林尼治时间

以下是一个示例代码,展示如何实现这个格式化:


CTime localTime = CTime::GetCurrentTime(); // 获取本地时间
CTimeSpan timeZoneDiff = CTimeSpan(0, -_timezone / 3600, 0, 0); // 计算时区偏差
CTime gmtTime = localTime + timeZoneDiff; // 转换到 GMT 时间


// 格式化为 MMDDhhmmYY
CString strFormattedGMT = gmtTime.Format("%m%d%H%M%y.%S");

// 获取当前的毫秒数
//SYSTEMTIME st;
//GetSystemTime(&st); // GetSystemTime 获取当前的 GMT 时间
//CString strMilliseconds;
//strMilliseconds.Format(".%03d", st.wMilliseconds); // 格式化毫秒数

// 现在 strFormatted 的格式是 MMDDhhmmYY.ss
pipe_system("adb root"); 
pipe_system("adb shell setprop persist.sys.timezone GMT"); 
pipe_system("adb shell date "+ strFormattedGMT +" set");
pipe_system("adb shell hwclock -w"); 

请注意,GetSystemTime 函数获取的是 GMT 时间,所以如果你需要的是本地时间的毫秒数,应该使用 GetLocalTime 函数替换 GetSystemTime。同时,这种方法假定系统时区设置是正确的。如果系统时区设置不正确,计算出的时间可能会有误差。

format

在这里插入图片描述

根据你提供的 adb shell date --help 命令输出,我们可以看到 Android 设备上的 date 命令支持多种格式用于设置和显示当前日期和时间。这个命令的用法和选项包括:

  • -u:使用 UTC 而不是当前时区。
  • -r FILE:使用指定文件的修改时间而不是当前日期。
  • -d DATE:显示指定的 DATE 而不是当前时间(用于转换日期格式)。
  • -D SET_FORMAT:为 SET 或 -d 指定 FORMAT(替代默认格式 MMDDhhmm[[CC]YY][.ss])。
  • +DISPLAY_FORMAT:使用 strftime(3) 语法指定显示格式字符串。

支持的输入格式包括:

  • MMDDhhmm[[CC]YY][.ss]:POSIX 格式。
  • @UNIXTIME[.FRACTION]:自 1970-01-01 午夜以来的秒数。
  • YYYY-MM-DD [hh:mm[:ss]]:ISO 8601 格式。
  • hh:mm[:ss]:今天的 24 小时制时间。

所有输入格式都可以在前面加上 TZ="id" 来单独设置输入时区,否则 $TZ 同时设置输入和输出时区。

使用这些信息,你可以根据需要设置 Android 设备上的日期和时间。例如,要设置时间为 2023 年 12 月 1 日 15:30:00,你可以使用以下命令:

adb shell date 120115302023.00

或者使用 ISO 8601 格式:

adb shell date "2023-12-01 15:30:00"

请注意,这些命令可能需要 root 权限才能在 Android 设备上执行,特别是在更改系统时间的情况下。如果你的设备没有 root,可能无法通过这种方式更改时间。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黄人软件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值