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

时间:2012-06-21 23:33:07

标签: android android-emulator clock avd

为什么Android模拟器的时钟与主机系统时钟不匹配?它的不是时区差异 - 它总是会在几分钟后关闭。

除了手动设置模拟器的时间外,还有办法同步它们吗?

7 个答案:

答案 0 :(得分:16)

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

以下是如何操作的图片: 首先取消选中“自动时区”(红色箭头),然后单击“选定的时区”(绿色箭头),最后选择您的时区,它应与您系统上的时区匹配(黄色箭头)。 timezone screen shots

答案 1 :(得分:5)

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

答案 2 :(得分:5)

因为我已将此作为谷歌的顶级链接:)

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 args 的部分会有所不同!

您可以在cmd.exe中测试:

> echo %date%
Thu 01/22/2015

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

linux

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

答案 3 :(得分:2)

date命令在较新的机器人中发生了变化,因为其他答案。您必须拥有root权限,才能识别-s并且设置的格式已更改。

我很幸运使用adb shell su root date -u @$(date +%s.%N),它使用@使用UNIX时间戳秒以纳秒精度设置它。如果您因某种原因更改了时区,则需要-u,即使时间戳不应包含时区!

答案 4 :(得分:2)

我遇到了同样的问题,只需使用仿真器电源按钮重新启动仿真器即可解决。

答案 5 :(得分:1)

在AndroidTV API 28模拟器上,此方法适用(linux):

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

主机时区应与您的AndroidTV时区相匹配。

答案 6 :(得分:0)

在Windows上,您需要在datetime字符串周围加上引号,以避免在解析返回数字前面的空格时出错。

完整的语法是:

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