42

为什么安卓模拟器的时钟与主机系统时钟不匹配?这不是时区差异——它总是相差几分钟。

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

4

7 回答 7

36

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

于 2020-03-05T02:19:08.790 回答
22

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

这是有关如何执行此操作的图片:首先取消选中“自动时区”(红色箭头),然后单击“选定时区”(绿色箭头),最后选择您的时区,它应该与您的系统(黄色箭头)。 时区截图

于 2012-06-22T00:05:05.097 回答
7

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

于 2012-06-22T01:03:19.973 回答
6

因为我把它作为谷歌的顶级链接:)

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.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)
于 2015-01-22T21:42:39.130 回答
6

date自从其他答案以来,该命令在较新的机器人中发生了变化。您必须具有 root 权限,-s无法识别并且设置的格式已更改。

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

于 2017-10-26T02:46:19.680 回答
5

在 AndroidTV API 28 模拟器上,这有效(GNU/Linux 和一些 Mac):

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

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

于 2020-01-13T07:55:43.430 回答
1

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

完整的语法是:

adb shell date -s '%date:~10,4%%date:~4,2%%date:~7,2%.%time:~0,2%%time:~3,2%%time:~6,2%'
于 2015-05-16T11:12:49.187 回答