细数Linux与Windows时间不一致问题的解决办法

一、前言

  • 一些小伙伴因为种种原因需要安装Windows和Linux某一发行版的双系统,处理时间不一致问题成为了安装后完善的首要,本文将从一些基本的概念入手,一步步告诉你如何调整。

二、一些概念

  • 时钟的概念
  1. 系统时钟(System Clock):顾名思义,软件系统的时钟,系统时钟是与硬件时钟相互独立的概念。不同的操作系统有着不同的时间管理方法,但都是以硬件时钟为基础的,例如Windows默认使用的localtime以及UNIX以及一些UNIX Like大多使用的UTC。
  2. 硬件时钟(Real Time Clock,简称RTC时钟):主板上的硬件时钟,由电池向主板供电维持,可以在BIOS(Basic Input Output System,基本输入输出系统)中调整。
  • 时间的标准
  • 时间有两个标准:localtime和UTC(Coordinated Universal Time)
  1. localtime 标准依赖于当前时区,Windows默认使用。
  2. UTC(Coordinated Universal Time)与时区无关的全球标准时间,与GMT(格林尼治时间)一致。一些Linux的发行版默认使用。

三、解决办法

  • 以manjaro与Windows10双系统时间不一致为例详细讲解如何进行操作。
  1. 从Linux入手,优雅的使用终端将默认使用的UTC调整为localtime,将硬件时间设置为localtime。

    $ sudo timedatectl set-local-rtc true
  2. 拿Windows开刀,暴力修改注册表将默认使用的localtime修改为UTC

    • 1)按下Windows键+R键在弹出的运行命令窗口中输入regedit回车,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\并新建DWORD键值RealTimeIsUniversal,然后设置为1,完成。

      或者在按下Windows键+R键在弹出的运行命令窗口中输入如下内容:

      reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f
    • 2)操作完成后在Windows操作与Internet时间同步或者在Linux终端下使用sudo ntpdate time.pool.aliyun.com与网络时间同步,如果时间存在偏移问题使用Linux命令sudo timedatectl set-timezone Asia/Beijing修改为正确的时区,之后与网络时间同步。
  3. 不管使用哪一种方法进行进行调整,建议在完成后对时间进行更新,并将系统时间写入CMOS,在Linux终端下运行。

    $ sudo ntpdate time.pool.aliyun.com
    $ sudo hwclock --systohc
  4. 至此时间不一致问题已经解决。

三、推荐阅读

  1. 时间和时区 - deepin wiki
  2. Time(简体中文) - Archwiki

四、参考文章

  1. 时间和时区 - deepin wiki
  2. Time(简体中文) - Archwiki
  3. 硬件时间,操作系统时间,Windows 和linux 双系统时间差8小时问题说明 - pipci - 博客园

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。

Last modification:November 17th, 2018 at 01:59 pm
If you think my article is useful to you, please feel free to appreciate

2 comments

  1. 范明明

    写一篇双系统教程吧,感觉引导是个问题。我只弄过子系统是Ubuntu。Win10下有什么好的办法?

    1. admin
      @范明明

      可以的,我抽时间写一篇,如果细说的话可能会涉及到好多东西,我会多写一些原理性的东西,win10下双系统挺容易折腾的,感谢你的建议。

Leave a Comment