我有一台在 Windows 10 中运行的 Ubuntu 18.04 WSL2 机器,有时我会遇到这个奇怪的问题,即 WSL2 机器中的时间不同步。我的时区是东部时间 (-5),正如您在下面看到的,我的 WSL 是未来 5 小时。感觉好像出于某种原因,我的 WSL 机器将我的本地时间解释为 UTC,并根据该信息进行计算。
WSL2
$ date
Fri Jan 22 03:13:28 EST 2021
$ cat /etc/timezone
America/Toronto
$ date +"%Z %z"
EST -0500
电源外壳
> date
Thursday, January 21, 2021 10:13:31 PM
> Get-TimeZone
Id : Eastern Standard Time
DisplayName : (UTC-05:00) Est (É.-U. et Canada)
StandardName : Est
DaylightName : Est (heure d’été)
BaseUtcOffset : -05:00:00
SupportsDaylightSavingTime : True
我试着做一个sudo dpkg-reconfigure tzdata
,但没有帮助。
编辑:添加屏幕截图,时间与我之前提到的时间不匹配,但屏幕截图显示了正确的本地时间和时区。
这是 WSL2 的一个已知问题:系统日期与 windows (WSL 2) #4245 不同
您必须在 WSL2 实例中运行以下命令:
您可以改为运行以下 PowerShell 命令:
您还必须执行以下 PowerShell 命令:
运行该命令后,您必须重新启动 WSL 实例。
该解决方案还需要将 Chrony 与以下注释的选项一起使用
/etc/chrony/chrony.conf
如果您还没有使用它:
另一种解决方案是将以下内容添加到 .bashrc:
资源:
WSL2 时钟偏差破解
WSL2 时钟偏差破解
另一种替代解决方案是根据记录的特定事件的检测在 Windows 中自动处理它。
这可以通过以下 PowerShell 脚本来处理:
资料来源:使用 WSL 2 修复时钟偏差
你也可以使用wsl-clock
其他资源:
WSL2 中的时间未同步 - 导致 TLS 问题 #4149
从睡眠中醒来后 WSL2 日期不正确 #5324
时间同步
Homestead 应该在 Hyper-V #1300 上启用 host->guest 时钟同步