2011-03-14 80 views
14

为了调试目的,我想在某个日期运行我的应用程序。当然,我可以在我的模拟器上手动更改日期,但我想知道是否有一种简单的方法可以从模拟器外壳(我知道无法从UI中完成)执行此操作。从Android上的shell设置日期

回答

0

这工作在Mac上:

adb shell date $(date -j mmddHHMM +%s) 

其中“MMDDHHMM”是月,日,小时,和你想设置的时间分钟。

这将通过使用adb shell在您的模拟器中调用“date”命令,然后将它传递自时代以来的秒数以设置时间(通过在本地调用“date -j ...”计算得出) mac)

您也可以更具体。从日期的手册页(在Mac上)的格式是[[[mm]dd]HH]MM[[cc]yy][.ss]

17

根据previous answer传递秒自时代在我的实例(WinXP Android SDK11 HVGA_1.6模拟器)上不起作用。然而这种特定的形式工作:

adb shell date -s "yyyymmdd.[[[hh]mm]ss]" 

[编辑6/27/2011:增加了语法的时间部分。]

+0

在我的Mac上工作。 – 2012-05-23 00:35:08

+0

时间部分不起作用。它只是将其设置为00:00:00。 – prolink007 2012-12-07 18:06:13

+0

要自动填写adb客户端的时间:'./adb shell date -s''date +%Y%m%d。%H%M%S'''' – 2015-06-24 17:52:58

4

我与Win 7

是:工作的正确格式工作对我来说是:

亚行外壳日期-s“YYYYMMDD.HHMMSS”

我在其他线程看到这个命令,真正让差别对我来说是在设置 - 设置>日期&以这种方式计时的选项。 (取消选择自动日期时间和时区)

Date and time in the emulator

Commands from adb

1

不像Linux中,只有2种方式,你可以设置日期。日期命令将通过调用设备驱动程序'dev/alarm'来设置时间。

  1. 日期-s “YYYYMMDD.HHMMSS” 或
  2. 日期-u “UTC_TIME_MILLI_SECS”

希望它能帮助。

拉维·潘迪特

+0

“date -u \”UTC_TIME_MILLI_SECS \“”在Android 4.1.1上为我工作,ty 。 – 2016-12-09 12:14:46

1

这在Linux下工作对我来说,也许有些修正为夏令时将被要求:

adb shell date -s $(date +%Y%m%d.%H%M%S) 
1

下在Mac OS X与您的计算机的时间正好一致,并它也设置秒。

如果是Android 7个仿真器,使用:

adb -e shell date $(date +%m%d%H%M%Y.%S) 

如果是Android 4/5/6仿真器,使用:

adb -e shell date -s $(date "+%Y%m%d.%H%M%S") 

注1:-e意味着“仿真器”,并且当您在t时连接仿真器和设备时,它可以可靠工作他同一时间。

注2:第一个变体是由Siva Kranthi Kumar在2016年6月9日发表的评论中发现的。试图使用adb shell date -?的文档实际上是不可能的。它写得不好,太难理解了。