2011-08-17 49 views
9

背景如何-设置Android设备的日期/时间编程

我使用了Wi-Fi的唯一版本的三星Galaxy Tab(7" )的工作的一个项目。在一些我们的设备眼看日期/时间上的设备越来越复位(不知道为什么),以过去的某个日期(如1/1/2000)。

问题(S)

如何以编程重置设备日期/时间?如果可能,我宁愿使用一些adb shell命令(我的shell脚本是rus TY)。如果没有shell命令可以实现这一点,是否有办法通过编写和安装应用程序来完成此操作(看起来像是违反安全规定)?

回答

1

使用shell的'date'命令。利用unix历元时间的参数(即自1970年1月1日以来的秒数),它设置设备的时钟,例如, '亚行外壳日期1318349236'。

您可以通过'adb shell date +%s'以秒为单位获取当前时间戳。如果你有busybox,date命令的功能更强大,你可以通过'busybox date +%s -d'获得你的任意期望日期。2010-01-01 12:34:56“'

+1

当我尝试 亚行外壳日期1319124916 我得到这个 时间1319124916 - > 1319124916.0 settime日期失败坏文件号 – celoftis

+1

在Linux上我使用:adb shell date -s \'date“+%Y%m%d。%H%M%S”\' – MartinMarco

30

你可以使用下一个命令:

ADB壳日期-s YYYYMMDD.HHMMSS

例如:

ADB壳日期-s 20120423.130000

设置日期Mon Apr 23 13:00:00 CEST 2012(我的手机是在CEST时区)

+0

嗨,是否有可能从windows机器并将其设置为android时间? –

+2

对不起,Windows用户 –

+1

@celoftis你能接受这个答案吗? –

1

我做了这个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)或terminalmac):

perl < clock.pl 

安卓时钟将立即更新您的机器时间。

0

我使用下面的命令以正确的格式在Windows日期和时间,这确实设置了Android的UNIX系统时间,但不改变硬件时钟在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 gui显示的时间也不会受到这种影响。

我猜hwclock命令应该用来更新硬件时钟,但由于权限错误,这不会执行。根据您的系统日期

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` 
相关问题