UTC、GTC时间和本地时间
1、问题
对于装有Windows和Linux系统的机器,进入Windows显示的时间和Linux不一致,Linux中的时间比Windows提前8个小时。
2、解决方法
修改/etc/default/rcS,设置不使用UTC时间,设置如下:
UTC=no
3、解释
这个是一个关于时间的问题,我们就先来了解一下关于时间的概念
UTC(Universal Time Coordinated):协调世界时
GMT(Greenwich Mean Time):格林威治时间
本地时间(local time):全球二十四个时区,以GMT或UTC为基准进行调整。例如,北京为东八区,则北京时间为GMT+8或UTC+8
UTC和GMT基本上一致,但UTC经过平均太阳时(以格林威治时间GMT为准)、地轴运动修正后的新时标以及以秒为单位的国际原子时所综合精算而成的时间,计算过程相当严谨精密,因此UTC比GMT来得更加精准更为精确。
Windows与Mac/Linux 缺省看待系统硬件时间的方式是不一样的:
- Windows把系统硬件时间当作本地时间(local time),即操作系统中显示的时间跟BIOS中显示的时间是一样的。
- Linux/Unix/Mac默认把硬件时间当作 UTC,操作系统中显示的时间是硬件时间经过换算得来的,比如说北京时间是GMT+8,则系统中显示时间是硬件时间+8。
因此,若要解决上述Windows和Linux显示时间不一致的问题,只要设置Linux/Unix/Mac不要将硬件时间当做UTC时间,而是作为本地时间即可。
使用timedatectl可以进行如下常见操作
查看当前时间/日期/时区:timedatectl或者timedatectl status
查看所有可用时区:timedatectl list-timezones
设置时区:timedatectl set-timezone “时区信息”
设置UTC:timedatectl set-timezone UTC
设置时间:timedatectl set-time HH:MM:SS
设置日期:timedatectl set-time YYYY-MM-DD
设置日期时间:timedatectl set-time “YYYY-MM-DD HH:MM:SS”
设置硬件时钟为本地时间:timedatectl set-local-rtc 1
设置硬件时钟为UTC时间:timedatectl set-local-rtc 0
启动NTP时间同步(启用NTP服务或者Chrony服务):timedatectl set-ntp true
禁用NTP时间同步:timedatectl set-ntp false
timedatectl set-timezone Asia/Shanghai ---更改时区(亚洲-中国-上海)