为什么安卓模拟器的时钟与主机系统时钟不匹配?这不是时区差异——它总是相差几分钟。
除了手动设置模拟器的时间之外,还有其他方法可以同步它们吗?
为什么安卓模拟器的时钟与主机系统时钟不匹配?这不是时区差异——它总是相差几分钟。
除了手动设置模拟器的时间之外,还有其他方法可以同步它们吗?
我遇到了同样的问题,只需使用模拟器电源按钮重新启动模拟器即可解决。
我相信没有办法同步时间。模拟器的默认图像设置为 UTC/GMT (+00:00)。但是,您可以将其更改为您自己的。
这是有关如何执行此操作的图片:首先取消选中“自动时区”(红色箭头),然后单击“选定时区”(绿色箭头),最后选择您的时区,它应该与您的系统(黄色箭头)。
如果 AVD 和主机时间之间存在一些差异,主要是在从快照重新启动之后,您可以adb shell 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.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)
date
自从其他答案以来,该命令在较新的机器人中发生了变化。您必须具有 root 权限,-s
无法识别并且设置的格式已更改。
我很幸运使用adb shell su root date -u @$(date +%s.%N)
,它用于@
使用具有纳秒精度的 UNIX 时间戳秒来设置它。-u
如果您出于某种原因更改了时区,则需要,即使时间戳不应该有时区!
在 AndroidTV API 28 模拟器上,这有效(GNU/Linux 和一些 Mac):
adb shell su root date $(date +%m%d%H%M%Y.%S)
主机时区应与您的 AndroidTV 时区匹配。
在 Windows 上,您需要在日期时间字符串周围加上引号,以避免在解析返回数字前的空格时出错。
完整的语法是:
adb shell date -s '%date:~10,4%%date:~4,2%%date:~7,2%.%time:~0,2%%time:~3,2%%time:~6,2%'