如何以编程方式设置Android设备日期/时间

时间:2011-08-17 14:46:07

标签: android adb galaxy

背景

我正在使用三星Galaxy标签(7“)的Wi-Fi版本进行项目。在某些设备上,我们看到设备上的日期/时间被重置(不知道为什么)到过去的某个日期(如2000年1月1日)。

问题(S)

如何以编程方式重置设备日期/时间?如果可能的话,我更愿意使用一些adb shell命令(我的shell脚本生锈)。如果没有可以实现此目的的shell命令,有没有办法通过编写和安装应用程序来实现这一点(似乎是安全违规)?

5 个答案:

答案 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`