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

Jef*_*rod 31 android clock android-virtual-device android-emulator

为什么Android模拟器的时钟与主机系统时钟不匹配?这不是一个时区差异 - 总是关闭几分钟.

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

Ray*_*kud 18

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

以下是如何执行此操作的图像:首先取消选中"自动时区"(红色箭头),然后单击"选定时区"(绿色箭头),最后选择您的时区,它应该与你的系统(黄色箭头). 时区屏幕截图

  • 我在问题中说过,这不是**时区问题,它是几分钟(不是几小时). (2认同)

Fre*_*edG 12

在 AndroidTV API 28 模拟器上,这可以工作(GNU/Linux 和一些 Mac):

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

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


小智 12

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

  • 您可以使用命令“adb restart” (18认同)
  • 我需要 AVD 管理器的冷启动,但这对我有用 (7认同)

Die*_*ano 6

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


Art*_*m L 6

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

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

adb shell date -s %date:~10,4%%date:~4,2%%date:~7,2%.%time:~0,2%%time:~3,2%%time:~6,2%
Run Code Online (Sandbox Code Playgroud)

-s 值应采用以下格式: YYYYMMDD.hhmmss

在具有不同时间格式的系统上,具有windows shell args的部分将是不同的!

你可以测试一下cmd.exe:

> echo %date%
Thu 01/22/2015
Run Code Online (Sandbox Code Playgroud)

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

linux上:

adb shell date -s $(date +%Y%m%d.%H%M%S)
Run Code Online (Sandbox Code Playgroud)


Sim*_*han 6

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

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

  • 谢谢。这是近年来唯一有效的答案。对于 macOS,只需跳过纳秒,因此:`adb shell su root date -u @$(date +%s)` (4认同)