adbコマンドでパソコンと同じ時刻をスマホに設定する

ROMを焼いたりするとネットに繋がないと時計が合わず、logcatでログを見ていても時刻がめちゃくちゃでよくわからないということがある。必要なときにパソコンと同じ時刻を秒単位でセットするシェルスクリプトを作っておくととても便利なことが多い。

 

 ○コマンド

Linux

 

adb shell date 'date +%m%d%H%M%Y.%S'

        または

adb shell "date 'date +%m%d%H%M%Y.%S'"

"月日時分年ドット秒"の順

%Sの前にドットが入ることに注意

 

Windows

adb shell date %date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%date:~0,4%.%time:~6,2%

"月日時分年ドット秒"の順

%Sの前にドットが入ることに注意

 

○仕組み

 コマンドプロンプト

>echo %date% と打つと日付を取得できる。
2019/04/03 Wed

同様に

>echo %time% と打つと時刻を取得できる。
23:08:47.47

%date:~5,2%は2019/04/03 Wedの0から始まる5番目から2文字取得するので04という月を取得する。

これを%%の囲いごとに行って"月日時分年ドット秒"の順に並べている。

Linuxのほうも要素の記述方法が違うだけで同じ。

うまく設定できない場合はWindowsの言語設定などで日付の表示順が違うことがあるのでecho %date%して並びを確認したほうが良い。

 

adbのdateコマンドはAndroid 6.0から書き方が変わったようだけど公式のドキュメントはどこにあるのかわからなかった。

dateコマンドのヘルプはadb shell date --helpで見る。