Установите дату из оболочки на Android

Для целей отладки я хотел бы запустить свое приложение на определенную дату. Конечно, я могу изменить дату вручную на своем эмуляторе, но мне было интересно, есть ли простой способ сделать это из оболочки эмулятора (я знаю, что это невозможно сделать из пользовательского интерфейса).

Solutions Collecting From Web of "Установите дату из оболочки на Android"

Передача секунд-с-эпох в соответствии с предыдущим ответом не работала на моем экземпляре (эмулятор WinXP Android SDK11 HVGA_1.6). Однако этот конкретный формат работал:

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

[Отредактировано 6/27/2011: добавлена ​​временная часть синтаксиса.]

Я работаю с Win 7.

Правильный формат, который работал для меня:

Дата добавления adb -s "YYYYMMDD.hhmmss"

Я видел в других потоках эту команду, что для меня действительно повлияло на то, чтобы установить в настройках -> Date & Time параметры таким образом. (Отменить автоматическую дату и время и часовой пояс)

Дата и время в эмуляторе

Команды из adb

В отличие от linux, есть только два способа установить дату. Date задает время, вызывая драйвер устройства dev / alarm.

  1. Date -s "YYYYMMDD.hhmmss" или
  2. Date -u "UTC_TIME_MILLI_SECS"

Надеюсь, поможет.

Рави Пандит

Это работает для меня под Linux, возможно, потребуется некоторая коррекция для перехода на летнее время:

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

Следующее работает в 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 означает «эмулятор», и он надежно работает, когда одновременно подключены эмулятор и устройство.

Примечание 2: Первый вариант был найден следующим образом из комментария, сделанного Шивой Кранти Кумаром, 9 июня 2016 года. Попытка использовать документацию из adb shell date -? Практически невозможно. Это плохо написано и слишком сложно понять.

Это работает на mac:

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

Где «mmddHHMM» – это месяц, день, час и минута времени, которое вы хотите установить.

Это вызовет команду «date» в вашем эмуляторе, используя оболочку adb, а затем передайте ей количество секунд с эпохи, чтобы установить время (как рассчитывается путем вызова «date -j …» на вашем локальном mac)

Вы также можете быть более конкретным. Формат с man-страницы для даты (на маке) – [[[mm]dd]HH]MM[[cc]yy][.ss]