使用ADB shell设置日期/时间

Abr*_*das 23 android adb

我正在尝试使用ADB shell设置日期/时间,但shell只返回当前时间.

我试过了:

adb shell date -s YYYYMMDD.HHmmss
Run Code Online (Sandbox Code Playgroud)

和unix时间如下:

adb shell date 1318349236
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Ale*_* P. 41

为了节省存储空间Android和许多其他嵌入式系统一样,使用多调用二进制文件来实现其基本的命令行工具date.

Android设备可能包含toolboxtoybox(或两者)二进制,具体取决于版本.您可以date通过运行toolbox datetoybox date命令检查设备上可用的工具实现.然后你可以使用打印出当前日期的那个.例如,对于Android 6.0+设备,它可能如下所示:

$ adb shell toybox date
Mon Jul 31 21:09:28 CDT 2017

$ adb shell toolbox date
date: no such tool
Run Code Online (Sandbox Code Playgroud)

使用toolbox date使用YYYYMMDD.HHmmss格式设置日期和时间:

adb shell "su 0 toolbox date -s 20161231.235959"
Run Code Online (Sandbox Code Playgroud)

如果toybox date使用MMDDhhmm[[CC]YY][.ss]格式:

adb shell "su 0 toybox date 123123592016.59"
Run Code Online (Sandbox Code Playgroud)

  • 对我有用...今天是 20140222.014100 (2认同)
  • 如果你想将日期设置为当前DATEM则:亚行壳 "苏0日期-s \`日期+%Y%M%d%H%M%S \'." (2认同)

Ami*_*val 29

Android 6.0有一个新的日期格式:

Default SET format is "MMDDhhmm[[CC]YY][.ss]", that's (2 digits each)
month, day, hour (0-23), and minute. Optionally century, year, and second.
Run Code Online (Sandbox Code Playgroud)

并且设置-s不再有效.这是更新的set命令:

更新命令的示例:

(在adb shell中)

date 060910002016.00                              
Run Code Online (Sandbox Code Playgroud)

将导致:

Thu Jun  9 10:00:00 GMT 2016
Run Code Online (Sandbox Code Playgroud)

注意:该命令不会立即在设备上可见,因为它不会触发任何时间更改广播,但它会在一分钟内可见.

要解决此问题,您可以通过以下方式手动附加此广播:

date 060910002016.00 ; am broadcast -a android.intent.action.TIME_SET
Run Code Online (Sandbox Code Playgroud)

要使用adb命令调用它:

adb shell 'date 060910002016.00 ; am broadcast -a android.intent.action.TIME_SET'
Run Code Online (Sandbox Code Playgroud)


Gre*_*ski 15

adb shell date -s `date +%G%m%d.%H%M%S`
Run Code Online (Sandbox Code Playgroud)

首先,它获取您的机器的当前日期并将其设置在Android目标上.这种方法应该适用于Linux/Mac/Cygwin.


Iva*_*tun 15

如果要更改日期值,则必须输入日期值."-s"更改SET格式.默认SET格式为"MMDDhhmm [[CC] YY] [.ss]".

我成功测试了以下命令:

adb root
adb shell "date `date +%m%d%H%M%Y.%S`"
Run Code Online (Sandbox Code Playgroud)

  • 这应该设置为答案。 (2认同)

Meh*_*ico 9

对于 Android 6+,要更改模拟器上的日期时间:

步骤1

adb root
Run Code Online (Sandbox Code Playgroud)

第2步

adb shell date MMDDhhmm[[CC]YY][.ss]
Run Code Online (Sandbox Code Playgroud)

例如,将日期设置为Oct 29 02:01:55 2020(或10/29/2020 02:01:55AM),我们这样做:

adb shell date 102902012020.55
Run Code Online (Sandbox Code Playgroud)

日期格式说明:

10 1 29 2 02 3 01 4 2020 5 .55 6

  1. 月份MM = 10
  2. DD = 29
  3. 小时hh = 02
  4. 分钟毫米 = 01
  5. 年份[[CC]YY] = 2020(或可以是 20)
  6. 第二个[.ss] = .55

*年和秒是可选的。