为什么Android模拟器的时钟与主机系统时钟不匹配?它的不是时区差异 - 它总是会在几分钟后关闭。
除了手动设置模拟器的时间外,还有办法同步它们吗?
答案 0 :(得分:16)
我相信没有办法同步时间。模拟器的默认图像设置为UTC / GMT(+00:00)。但是,您可以将其更改为您自己的。
以下是如何操作的图片: 首先取消选中“自动时区”(红色箭头),然后单击“选定的时区”(绿色箭头),最后选择您的时区,它应与您系统上的时区匹配(黄色箭头)。
答案 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%'