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?
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?
As I've got this as top link in google :)
On windows you can get right time by issuing
-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
:To output YYYY part use:
%date:[position of char. 0-based],[length]%
On linux:
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).
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.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:
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!