Home » Android » android – Emulator's clock doesn't match the host system clock

android – Emulator's clock doesn't match the host system clock

Posted by: admin April 23, 2020 Leave a comment

Questions:

Why doesn’t the Android emulator’s clock match the host system clock? It’s not a time zone difference–it’s always off by several minutes.

Is there a way to synchronize them besides manually setting the emulator’s time?

How to&Answers:

I believe there is no way to synchronize the time. The default image of the emulator sets to UTC/GMT (+00:00). However you can change it to your own.

Here is an image on how to do so:
First un-check the “Automatic Time Zone” (red arrow) then click on the “Selected Time Zone” (green arrow) and finally select your time zone and it should match the one on your system (yellow arrow).
timezone screen shots

Answer:

If there are some discrepancies between the AVD and host times, mainly after restarting from a snapshot you can use adb shell date to check and/or set the date just after you launched the emulator.

Answer:

As I’ve got this as top link in google 🙂

On windows you can get right time by issuing

adb shell date -s %date:~10,4%%date:~4,2%%date:~7,2%.%time:~0,2%%time:~3,2%%time:~6,2%

-s value should be in format: YYYYMMDD.hhmmss

On systems that have different time format, portion with windows shell args will be different!

You can test out in cmd.exe:

> echo %date%
Thu 01/22/2015

To output YYYY part use: %date:[position of char. 0-based],[length]%

On linux:

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

Answer:

The date command has changed in newer androids since the other answers. You must have root, -s is not recognized and the set format has changed.

I’ve had luck using adb shell su root date -u @$(date +%s.%N), which uses @ to set it using UNIX timestamp seconds with nanosecond precision. -u is required if you have changed the timezone for some reason, even though timestamps should not have a time zone!

Answer:

On Windows, you need to put quote around the datetime string to avoid error when the parsing returns a space in front of a digit.

The complete syntax would be:

adb shell date -s '%date:~10,4%%date:~4,2%%date:~7,2%.%time:~0,2%%time:~3,2%%time:~6,2%'

Answer:

On AndroidTV API 28 simulator, this works (linux) :

adb shell su root date $(date +%m%d%H%M%Y.%S)

The host timezone should match your AndroidTV timezone.

Answer:

I had the same problem and got it resolved by just restarting the emulator using emulator power button.