Jeff Axelrod
Jeff Axelrod

Reputation: 28188

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

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?

Upvotes: 78

Views: 43977

Answers (8)

Abhay
Abhay

Reputation: 11

Mackbook Air M2 - Android Studio Flamingo-emulator API 33.Had the same issue.Cold reboot after setting time zone of emulator worked for me.

Upvotes: 1

FredG
FredG

Reputation: 869

On AndroidTV API 28 simulator, this works (GNU/Linux, and some Mac) :

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

The host timezone should match your AndroidTV timezone.

Upvotes: 12

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

Upvotes: 65

Simon Buchan
Simon Buchan

Reputation: 13255

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!

Upvotes: 10

user4906642
user4906642

Reputation: 11

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%'

Upvotes: 1

Artem L
Artem L

Reputation: 10253

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)

Upvotes: 5

Raykud
Raykud

Reputation: 2484

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

Upvotes: 24

Diego Torres Milano
Diego Torres Milano

Reputation: 69318

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.

Upvotes: 9

Related Questions