一. 时间类型分为:
1. 网络时间(设置时区, ntp 服务器同步的时间)
2. 系统时间, 当前系统所显示的时间
3. 硬件 (RTC) 时间, 主板上面 Bios 的时间
一般设置为: 系统时间与网络时间同步, 系统时间写入硬件时间.
二. 时间的查看方式:
1. 查看硬件时间
#hwclock
2. 查看系统时间
date
3. 网络时间的更新及查看
#ntpdate xxxxxx
xxxxxx 为在 / etc/ntp.conf 文件中设置的时间服务器
四. 时间的修改方式
1. 系统时间的修改
将时间设置为 13 点 11 分 03 秒
#date -s 13:11:03
2. 硬件时间的修改
#hwclock --set --date='03/21/2019 15:20';
设置硬件时间为 2019 年 3 月 21 日 15:20
3. 网络时间的修改
1. 网络时间要通过修改时区来进行修改
tzselect 不确定时区的需要使用这个命令找到自己所在的时区
2. 大部分中国用户都是使用亚洲 / 上海, 所以用下面这条命令更新为上海时区
#cp -v /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
3. 与网络服务器同步时间
#ntpdate xxxxxx
xxxxxx 为在 / etc/ntp.conf 文件中设置的时间服务器
五. 时间互相写入
1. 硬件时间写入系统时间
#hwclock -s
2. 系统时间同步网络时间
#ntpdate xxxxxx
xxxxxx 为在 / etc/ntp.conf 文件中设置的时间服务器
3. 系统时间写入硬件时间
#hwclock -w
六. 双系统时间误差问题的原因及解决方案
1. 硬件时间的格式
1. 本地时间: localtime(Windows 所使用的时间)
2. 世界标准时间: UTC(Linux/unix 所使用的时间)
2.Windows 与 Linux/unix 对硬件时间解读的区别
Windows 使用 localtime(本地时间)作为系统时间
Linux/unix 使用 UTC(世界标准时间)与时区进行换算的出的时间作为系统时间, 因为北京时间使用东八区时间, 所以是 UTC+8 换算后为系统时间
3.Windows 与 Linux/unix 时间误差的原因
使用 Windows 系统时与网络同步时间的同时将 localtime 时间写入硬件时间(注意这时候 Windows 系统时间和硬件时间已经同步相同的时间), 使用 Linux/unix 的设置中硬件时间是 UTC 时间所以它在已经同步的正确的时间基础上面加了 8 小时, 反之同理, 导致时间误差.
4.Windows 与 Linux/unix 时间误差的解决方案
方法 1.Windows:
1. 使用 UTC 时间作为本地时间
方法 2.Linux:
1. 使用 localtime 时间作为硬件时间 (适合于使用 systemd 管理服务的 Linux 发行版)
2. 使用网络时间作为本地时间, 并且不与硬件时间互相同步(适用于使用 init 管理服务的 Linux 发行版)
目前大多数发行版本都使用 systemd 为服务管理器
5.Windows 与 Linux/unix 时间误差的具体操作
方法一: Windows
1. 以管理员身份打开 cmd
执行:
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
方法二: Linux
1. 使用 localtime 作为硬件时间(适合于使用 systemd 管理服务的 Linux 发行版)
#hwclock --localtime
或者
root 用户修改文件 / etc/adjtime 文件内容的 UTC 为 LOCAL
2. 设置 Linux 不使用硬件时间同步(适用于使用 init 管理服务的 Linux 发行版)
root 用户修改文件 / etc/sysconfig/clock 文件内容的 UTC=1 为 UTC=0
如有不足麻烦各位前辈评论补充!
来源: https://www.cnblogs.com/renren-study-notes/p/10229743.html