仿真器的时钟与主机系统时钟不匹配

为什么Android模拟器的时钟不匹配主机系统时钟? 这不是一个时区差异 – 它总是closures几分钟。

除了手动设置模拟器的时间之外,还有一种方法可以同步它们吗?

Solutions Collecting From Web of "仿真器的时钟与主机系统时钟不匹配"

我相信没有办法同步时间。 模拟器的默认图像设置为UTC / GMT(+00:00)。 但是你可以把它改成你自己的。

这里是一个图像如何这样做:首先取消选中“自动时区”(红色箭头),然后单击“选定时区”(绿色箭头),最后select您的时区,它应该匹配你的系统(黄色箭头)。 时区屏幕截图

如果AVD和主机时间之间有一些差异,主要是从快照重新启动后,可以使用adb shell date来检查和/或设置启动模拟器后的date。

因为我有这个作为顶级链接在谷歌:)

Windows上,您可以通过发布来获得正确的时间

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

-s值的格式应该是: YYYYMMDD.hhmmss

在具有不同时间格式的系统上,带有windows shell参数的部分将会不同!

你可以在cmd.exetesting出来:

 > echo %date% Thu 01/22/2015 

要输出YYYY部分使用: %date:[position of char. 0-based],[length]% %date:[position of char. 0-based],[length]%

linux上

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

在Windows上,您需要在date时间string周围加上引号,以避免parsing在数字前面返回空格时出错。

完整的语法是:

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

date命令已经改变了较新的机器人,因为其他的答案。 你必须有根, -s不能被识别,设置的格式已经改变。

我已经有幸使用adb shell su root date -u @$(date +%s.%N) ,它使用@使用UNIX时间戳秒来设置它,精度为纳秒级。 如果您因为某些原因更改了时区,则需要-u ,即使时间戳不应该有时区!