背景
我正在使用三星Galaxy标签(7“)的Wi-Fi版本进行项目。在某些设备上,我们看到设备上的日期/时间被重置(不知道为什么)到过去的某个日期(如2000年1月1日)。
问题(S)
如何以编程方式重置设备日期/时间?如果可能的话,我更愿意使用一些adb shell命令(我的shell脚本生锈)。如果没有可以实现此目的的shell命令,有没有办法通过编写和安装应用程序来实现这一点(似乎是安全违规)?
答案 0 :(得分:30)
您可以使用下一个命令:
adb shell date -s YYYYMMDD.HHmmss
示例:
adb shell date -s 20120423.130000
将日期设置为Mon Apr 23 13:00:00 CEST 2012
(我的手机处于CEST时区)
答案 1 :(得分:2)
我制作了这个perl
脚本来处理这个问题:
<强> clock.pl
强>
use Time::localtime;
$_=localtime;
system'adb','shell','date -s',sprintf("%04d%02d%02d.%02d%02d%02d",$_->year+1900,$_->mon+1,$_->mday,$_->hour,$_->min,$_->sec)
使用cmd
( windows )或terminal
( mac )调用它:
perl < clock.pl
Android时钟会立即更新您的机器时间。
答案 2 :(得分:1)
使用shell的'date'命令。利用unix纪元时间的参数(即自1970年1月1日以来的秒数),它设置设备的时钟,例如, 'adb shell date 1318349236'。
您可以使用'adb shell date +%s'以秒为单位获取当前时间戳。如果您有busybox,则date命令功能更强,您可以使用'busybox date +%s -d“2010-01-01 12:34:56”'
以秒为单位获得您想要的任意日期答案 3 :(得分:0)
我使用以下命令在Windows中正确格式化日期和时间以及在android上设置系统时间
set datetimef=%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2%%date:~-4%.%time:~6,2%
adb shell date -d %datetimef%
这会设置Android的unix系统时间,但不会更改硬件时钟。 android gui显示的时间也不受此影响。
我猜hwclock命令应该用于更新硬件时钟,但由于权限错误而无法执行。
答案 4 :(得分:0)
根据您的系统日期更改日期
更改日期与系统相同
adb shell date -s `date +%G%m%d.%H%M%S`
将日期更改为明天:
adb shell date -s `date --date='1 day' +%G%m%d.%H%M%S`
将日期更改为明天上午12点
adb shell date -s `date --date='1 day' +%G%m%d.000000`
将日期更改为昨天
adb shell date -s `date --date='1 day ago' +%G%m%d.%H%M%S`
将日期更改为星期前
adb shell date -s `date --date='1 week ago' +%G%m%d.%H%M%S`