Windows Ubuntu双系统时间不一致

这个问题本来很早就遇到并解决了,可是昨天在 Ubuntu 上尝试装 Win7 虚拟机,当时没有注意时间的变化,今早重新打开电脑,发现时间快了 8 个小时。于是决定再次详细总结这个问题,加深记忆。
解决这个问题之前,我们需要先了解以下概念:

GMT

格林威治标准时间。
十七世纪,格林威治皇家天文台为了海上霸权的扩张计画而进行天体观测。1675年旧皇家观测所(Old Royal Observatory) 正式成立,到了1884年决定以通过格林威治的子午线作为划分地球东西两半球的经度零度。观测所门口墙上有一个标志24小时的时钟,显示当下的时间,对全球而言,这里所设定的时间是世界时间参考点,全球都以格林威治的时间作为标准来设定时间,这就是我们耳熟能详的「格林威治标准时间」(Greenwich Mean Time,简称G.M.T.)的由来,标示在手表上,则代表此表具有两地时间功能,也就是同时可以显示原居地和另一个国度的时间。

UTC

世界协调时间。
多数的两地时间表都以GMT来表示,但也有些两地时间表上看不到GMT字样,出现的反而是UTC这3个英文字母,究竟何谓UTC?事实上,UTC指的是Coordinated Universal Time- 世界协调时间(又称世界标准时间、世界统一时间),是经过平均太阳时(以格林威治时间GMT为准)、地轴运动修正后的新时标以及以「秒」为单位的国际原子时所综合精算而成的时间,计算过程相当严谨精密,因此若以「世界标准时间」的角度来说,UTC比GMT来得更加精准。其误差值必须保持在0.9秒以内,若大于0.9秒则由位于巴黎的国际地球自转事务中央局发布闰秒,使UTC与地球自转周期一致。所以基本上UTC的本质强调的是比GMT更为精确的世界时间标准,不过对于现行表款来说,GMT与UTC的功能与精确度是没有差别的。

CST

CST却同时可以代表如下 4 个不同的时区:
Central Standard Time (USA) UT-6:00
Central Standard Time (Australia) UT+9:30
China Standard Time UT+8:00
Cuba Standard Time UT-4:00
可见,CST可以同时表示美国,澳大利亚,中国,古巴四个国家的标准时间。当然,每个国家的 CST 都是不同的哦,所以这个时间很容易出现混乱,比如这个例子:一次 JDBC 与 MySQL 因 “CST” 时区协商误解导致时间差了 14 或 13 小时的排错经历

RTC

即实时时钟(Real-Time Clock)

原因

在于windows和ubuntu的时间管理机制不一样。
windows是把BIOS的时间当做默认时间
ubuntu是把BIOS当做GTM+0,我国在东八区,所以为GTM+8;
这样一来,两个系统的时间必然会差八个小时。

解决问题

查看当前时间管理状态:
timedatectl 
运行该命令:
timedatectl set-local-rtc 1
再次查看时间管理状态:
timedatectl

猜你喜欢

转载自blog.csdn.net/weixin_43758823/article/details/86713125